home *** CD-ROM | disk | FTP | other *** search
/ PC go! 2018 January / PCgo 01-2018 CD-ROM Germany.iso / nw.pak / Unnamed File 004771.unknown < prev    next >
Encoding:
Text File  |  2015-07-29  |  142.2 KB  |  823 lines

  1. console=console;console.__originalAssert=console.assert;console.assert=function(value,message)
  2. {if(value)
  3. return;console.__originalAssert(value,message);}
  4. var ArrayLike;Object.isEmpty=function(obj)
  5. {for(var i in obj)
  6. return false;return true;}
  7. Object.values=function(obj)
  8. {var result=Object.keys(obj);var length=result.length;for(var i=0;i<length;++i)
  9. result[i]=obj[result[i]];return result;}
  10. function mod(m,n)
  11. {return((m%n)+n)%n;}
  12. String.prototype.findAll=function(string)
  13. {var matches=[];var i=this.indexOf(string);while(i!==-1){matches.push(i);i=this.indexOf(string,i+string.length);}
  14. return matches;}
  15. String.prototype.lineEndings=function()
  16. {if(!this._lineEndings){this._lineEndings=this.findAll("\n");this._lineEndings.push(this.length);}
  17. return this._lineEndings;}
  18. String.prototype.lineCount=function()
  19. {var lineEndings=this.lineEndings();return lineEndings.length;}
  20. String.prototype.lineAt=function(lineNumber)
  21. {var lineEndings=this.lineEndings();var lineStart=lineNumber>0?lineEndings[lineNumber-1]+1:0;var lineEnd=lineEndings[lineNumber];var lineContent=this.substring(lineStart,lineEnd);if(lineContent.length>0&&lineContent.charAt(lineContent.length-1)==="\r")
  22. lineContent=lineContent.substring(0,lineContent.length-1);return lineContent;}
  23. String.prototype.escapeCharacters=function(chars)
  24. {var foundChar=false;for(var i=0;i<chars.length;++i){if(this.indexOf(chars.charAt(i))!==-1){foundChar=true;break;}}
  25. if(!foundChar)
  26. return String(this);var result="";for(var i=0;i<this.length;++i){if(chars.indexOf(this.charAt(i))!==-1)
  27. result+="\\";result+=this.charAt(i);}
  28. return result;}
  29. String.regexSpecialCharacters=function()
  30. {return"^[]{}()\\.^$*+?|-,";}
  31. String.prototype.escapeForRegExp=function()
  32. {return this.escapeCharacters(String.regexSpecialCharacters());}
  33. String.prototype.escapeHTML=function()
  34. {return this.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""");}
  35. String.prototype.unescapeHTML=function()
  36. {return this.replace(/</g,"<").replace(/>/g,">").replace(/:/g,":").replace(/"/g,"\"").replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&");}
  37. String.prototype.collapseWhitespace=function()
  38. {return this.replace(/[\s\xA0]+/g," ");}
  39. String.prototype.trimMiddle=function(maxLength)
  40. {if(this.length<=maxLength)
  41. return String(this);var leftHalf=maxLength>>1;var rightHalf=maxLength-leftHalf-1;return this.substr(0,leftHalf)+"\u2026"+this.substr(this.length-rightHalf,rightHalf);}
  42. String.prototype.trimEnd=function(maxLength)
  43. {if(this.length<=maxLength)
  44. return String(this);return this.substr(0,maxLength-1)+"\u2026";}
  45. String.prototype.trimURL=function(baseURLDomain)
  46. {var result=this.replace(/^(https|http|file):\/\//i,"");if(baseURLDomain)
  47. result=result.replace(new RegExp("^"+baseURLDomain.escapeForRegExp(),"i"),"");return result;}
  48. String.prototype.toTitleCase=function()
  49. {return this.substring(0,1).toUpperCase()+this.substring(1);}
  50. String.prototype.compareTo=function(other)
  51. {if(this>other)
  52. return 1;if(this<other)
  53. return-1;return 0;}
  54. function sanitizeHref(href)
  55. {return href&&href.trim().toLowerCase().startsWith("javascript:")?null:href;}
  56. String.prototype.removeURLFragment=function()
  57. {var fragmentIndex=this.indexOf("#");if(fragmentIndex==-1)
  58. fragmentIndex=this.length;return this.substring(0,fragmentIndex);}
  59. String.prototype.startsWith=function(substring)
  60. {return!this.lastIndexOf(substring,0);}
  61. String.prototype.endsWith=function(substring)
  62. {return this.indexOf(substring,this.length-substring.length)!==-1;}
  63. String.prototype.hashCode=function()
  64. {var result=0;for(var i=0;i<this.length;++i)
  65. result=(result*3+this.charCodeAt(i))|0;return result;}
  66. String.prototype.isDigitAt=function(index)
  67. {var c=this.charCodeAt(index);return 48<=c&&c<=57;}
  68. String.naturalOrderComparator=function(a,b)
  69. {var chunk=/^\d+|^\D+/;var chunka,chunkb,anum,bnum;while(1){if(a){if(!b)
  70. return 1;}else{if(b)
  71. return-1;else
  72. return 0;}
  73. chunka=a.match(chunk)[0];chunkb=b.match(chunk)[0];anum=!isNaN(chunka);bnum=!isNaN(chunkb);if(anum&&!bnum)
  74. return-1;if(bnum&&!anum)
  75. return 1;if(anum&&bnum){var diff=chunka-chunkb;if(diff)
  76. return diff;if(chunka.length!==chunkb.length){if(!+chunka&&!+chunkb)
  77. return chunka.length-chunkb.length;else
  78. return chunkb.length-chunka.length;}}else if(chunka!==chunkb)
  79. return(chunka<chunkb)?-1:1;a=a.substring(chunka.length);b=b.substring(chunkb.length);}}
  80. Number.constrain=function(num,min,max)
  81. {if(num<min)
  82. num=min;else if(num>max)
  83. num=max;return num;}
  84. Number.gcd=function(a,b)
  85. {if(b===0)
  86. return a;else
  87. return Number.gcd(b,a%b);}
  88. Number.toFixedIfFloating=function(value)
  89. {if(!value||isNaN(value))
  90. return value;var number=Number(value);return number%1?number.toFixed(3):String(number);}
  91. Date.prototype.toISO8601Compact=function()
  92. {function leadZero(x)
  93. {return(x>9?"":"0")+x;}
  94. return this.getFullYear()+
  95. leadZero(this.getMonth()+1)+
  96. leadZero(this.getDate())+"T"+
  97. leadZero(this.getHours())+
  98. leadZero(this.getMinutes())+
  99. leadZero(this.getSeconds());}
  100. Date.prototype.toConsoleTime=function()
  101. {function leadZero2(x)
  102. {return(x>9?"":"0")+x;}
  103. function leadZero3(x)
  104. {return(Array(4-x.toString().length)).join('0')+x;}
  105. return this.getFullYear()+"-"+
  106. leadZero2(this.getMonth()+1)+"-"+
  107. leadZero2(this.getDate())+" "+
  108. leadZero2(this.getHours())+":"+
  109. leadZero2(this.getMinutes())+":"+
  110. leadZero2(this.getSeconds())+"."+
  111. leadZero3(this.getMilliseconds());}
  112. Object.defineProperty(Array.prototype,"remove",{value:function(value,firstOnly)
  113. {var index=this.indexOf(value);if(index===-1)
  114. return;if(firstOnly){this.splice(index,1);return;}
  115. for(var i=index+1,n=this.length;i<n;++i){if(this[i]!==value)
  116. this[index++]=this[i];}
  117. this.length=index;}});Object.defineProperty(Array.prototype,"keySet",{value:function()
  118. {var keys={};for(var i=0;i<this.length;++i)
  119. keys[this[i]]=true;return keys;}});Object.defineProperty(Array.prototype,"pushAll",{value:function(array)
  120. {Array.prototype.push.apply(this,array);}});Object.defineProperty(Array.prototype,"rotate",{value:function(index)
  121. {var result=[];for(var i=index;i<index+this.length;++i)
  122. result.push(this[i%this.length]);return result;}});Object.defineProperty(Array.prototype,"sortNumbers",{value:function()
  123. {function numericComparator(a,b)
  124. {return a-b;}
  125. this.sort(numericComparator);}});Object.defineProperty(Uint32Array.prototype,"sort",{value:Array.prototype.sort});(function(){var partition={value:function(comparator,left,right,pivotIndex)
  126. {function swap(array,i1,i2)
  127. {var temp=array[i1];array[i1]=array[i2];array[i2]=temp;}
  128. var pivotValue=this[pivotIndex];swap(this,right,pivotIndex);var storeIndex=left;for(var i=left;i<right;++i){if(comparator(this[i],pivotValue)<0){swap(this,storeIndex,i);++storeIndex;}}
  129. swap(this,right,storeIndex);return storeIndex;}};Object.defineProperty(Array.prototype,"partition",partition);Object.defineProperty(Uint32Array.prototype,"partition",partition);var sortRange={value:function(comparator,leftBound,rightBound,sortWindowLeft,sortWindowRight)
  130. {function quickSortRange(array,comparator,left,right,sortWindowLeft,sortWindowRight)
  131. {if(right<=left)
  132. return;var pivotIndex=Math.floor(Math.random()*(right-left))+left;var pivotNewIndex=array.partition(comparator,left,right,pivotIndex);if(sortWindowLeft<pivotNewIndex)
  133. quickSortRange(array,comparator,left,pivotNewIndex-1,sortWindowLeft,sortWindowRight);if(pivotNewIndex<sortWindowRight)
  134. quickSortRange(array,comparator,pivotNewIndex+1,right,sortWindowLeft,sortWindowRight);}
  135. if(leftBound===0&&rightBound===(this.length-1)&&sortWindowLeft===0&&sortWindowRight>=rightBound)
  136. this.sort(comparator);else
  137. quickSortRange(this,comparator,leftBound,rightBound,sortWindowLeft,sortWindowRight);return this;}}
  138. Object.defineProperty(Array.prototype,"sortRange",sortRange);Object.defineProperty(Uint32Array.prototype,"sortRange",sortRange);})();Object.defineProperty(Array.prototype,"stableSort",{value:function(comparator)
  139. {function defaultComparator(a,b)
  140. {return a<b?-1:(a>b?1:0);}
  141. comparator=comparator||defaultComparator;var indices=new Array(this.length);for(var i=0;i<this.length;++i)
  142. indices[i]=i;var self=this;function indexComparator(a,b)
  143. {var result=comparator(self[a],self[b]);return result?result:a-b;}
  144. indices.sort(indexComparator);for(var i=0;i<this.length;++i){if(indices[i]<0||i===indices[i])
  145. continue;var cyclical=i;var saved=this[i];while(true){var next=indices[cyclical];indices[cyclical]=-1;if(next===i){this[cyclical]=saved;break;}else{this[cyclical]=this[next];cyclical=next;}}}
  146. return this;}});Object.defineProperty(Array.prototype,"qselect",{value:function(k,comparator)
  147. {if(k<0||k>=this.length)
  148. return;if(!comparator)
  149. comparator=function(a,b){return a-b;}
  150. var low=0;var high=this.length-1;for(;;){var pivotPosition=this.partition(comparator,low,high,Math.floor((high+low)/2));if(pivotPosition===k)
  151. return this[k];else if(pivotPosition>k)
  152. high=pivotPosition-1;else
  153. low=pivotPosition+1;}}});Object.defineProperty(Array.prototype,"lowerBound",{value:function(object,comparator,left,right)
  154. {function defaultComparator(a,b)
  155. {return a<b?-1:(a>b?1:0);}
  156. comparator=comparator||defaultComparator;var l=left||0;var r=right!==undefined?right:this.length;while(l<r){var m=(l+r)>>1;if(comparator(object,this[m])>0)
  157. l=m+1;else
  158. r=m;}
  159. return r;}});Object.defineProperty(Array.prototype,"upperBound",{value:function(object,comparator,left,right)
  160. {function defaultComparator(a,b)
  161. {return a<b?-1:(a>b?1:0);}
  162. comparator=comparator||defaultComparator;var l=left||0;var r=right!==undefined?right:this.length;while(l<r){var m=(l+r)>>1;if(comparator(object,this[m])>=0)
  163. l=m+1;else
  164. r=m;}
  165. return r;}});Object.defineProperty(Uint32Array.prototype,"lowerBound",{value:Array.prototype.lowerBound});Object.defineProperty(Uint32Array.prototype,"upperBound",{value:Array.prototype.upperBound});Object.defineProperty(Float64Array.prototype,"lowerBound",{value:Array.prototype.lowerBound});Object.defineProperty(Array.prototype,"binaryIndexOf",{value:function(value,comparator)
  166. {var index=this.lowerBound(value,comparator);return index<this.length&&comparator(value,this[index])===0?index:-1;}});Object.defineProperty(Array.prototype,"select",{value:function(field)
  167. {var result=new Array(this.length);for(var i=0;i<this.length;++i)
  168. result[i]=this[i][field];return result;}});Object.defineProperty(Array.prototype,"peekLast",{value:function()
  169. {return this[this.length-1];}});(function(){function mergeOrIntersect(array1,array2,comparator,mergeNotIntersect)
  170. {var result=[];var i=0;var j=0;while(i<array1.length&&j<array2.length){var compareValue=comparator(array1[i],array2[j]);if(mergeNotIntersect||!compareValue)
  171. result.push(compareValue<=0?array1[i]:array2[j]);if(compareValue<=0)
  172. i++;if(compareValue>=0)
  173. j++;}
  174. if(mergeNotIntersect){while(i<array1.length)
  175. result.push(array1[i++]);while(j<array2.length)
  176. result.push(array2[j++]);}
  177. return result;}
  178. Object.defineProperty(Array.prototype,"intersectOrdered",{value:function(array,comparator)
  179. {return mergeOrIntersect(this,array,comparator,false);}});Object.defineProperty(Array.prototype,"mergeOrdered",{value:function(array,comparator)
  180. {return mergeOrIntersect(this,array,comparator,true);}});}());function insertionIndexForObjectInListSortedByFunction(object,list,comparator,insertionIndexAfter)
  181. {if(insertionIndexAfter)
  182. return list.upperBound(object,comparator);else
  183. return list.lowerBound(object,comparator);}
  184. String.sprintf=function(format,var_arg)
  185. {return String.vsprintf(format,Array.prototype.slice.call(arguments,1));}
  186. String.tokenizeFormatString=function(format,formatters)
  187. {var tokens=[];var substitutionIndex=0;function addStringToken(str)
  188. {tokens.push({type:"string",value:str});}
  189. function addSpecifierToken(specifier,precision,substitutionIndex)
  190. {tokens.push({type:"specifier",specifier:specifier,precision:precision,substitutionIndex:substitutionIndex});}
  191. var index=0;for(var precentIndex=format.indexOf("%",index);precentIndex!==-1;precentIndex=format.indexOf("%",index)){addStringToken(format.substring(index,precentIndex));index=precentIndex+1;if(format[index]==="%"){addStringToken("%");++index;continue;}
  192. if(format.isDigitAt(index)){var number=parseInt(format.substring(index),10);while(format.isDigitAt(index))
  193. ++index;if(number>0&&format[index]==="$"){substitutionIndex=(number-1);++index;}}
  194. var precision=-1;if(format[index]==="."){++index;precision=parseInt(format.substring(index),10);if(isNaN(precision))
  195. precision=0;while(format.isDigitAt(index))
  196. ++index;}
  197. if(!(format[index]in formatters)){addStringToken(format.substring(precentIndex,index+1));++index;continue;}
  198. addSpecifierToken(format[index],precision,substitutionIndex);++substitutionIndex;++index;}
  199. addStringToken(format.substring(index));return tokens;}
  200. String.standardFormatters={d:function(substitution)
  201. {return!isNaN(substitution)?substitution:0;},f:function(substitution,token)
  202. {if(substitution&&token.precision>-1)
  203. substitution=substitution.toFixed(token.precision);return!isNaN(substitution)?substitution:(token.precision>-1?Number(0).toFixed(token.precision):0);},s:function(substitution)
  204. {return substitution;}}
  205. String.vsprintf=function(format,substitutions)
  206. {return String.format(format,substitutions,String.standardFormatters,"",function(a,b){return a+b;}).formattedResult;}
  207. String.format=function(format,substitutions,formatters,initialValue,append,tokenizedFormat)
  208. {if(!format||!substitutions||!substitutions.length)
  209. return{formattedResult:append(initialValue,format),unusedSubstitutions:substitutions};function prettyFunctionName()
  210. {return"String.format(\""+format+"\", \""+Array.prototype.join.call(substitutions,"\", \"")+"\")";}
  211. function warn(msg)
  212. {console.warn(prettyFunctionName()+": "+msg);}
  213. function error(msg)
  214. {console.error(prettyFunctionName()+": "+msg);}
  215. var result=initialValue;var tokens=tokenizedFormat||String.tokenizeFormatString(format,formatters);var usedSubstitutionIndexes={};for(var i=0;i<tokens.length;++i){var token=tokens[i];if(token.type==="string"){result=append(result,token.value);continue;}
  216. if(token.type!=="specifier"){error("Unknown token type \""+token.type+"\" found.");continue;}
  217. if(token.substitutionIndex>=substitutions.length){error("not enough substitution arguments. Had "+substitutions.length+" but needed "+(token.substitutionIndex+1)+", so substitution was skipped.");result=append(result,"%"+(token.precision>-1?token.precision:"")+token.specifier);continue;}
  218. usedSubstitutionIndexes[token.substitutionIndex]=true;if(!(token.specifier in formatters)){warn("unsupported format character \u201C"+token.specifier+"\u201D. Treating as a string.");result=append(result,substitutions[token.substitutionIndex]);continue;}
  219. result=append(result,formatters[token.specifier](substitutions[token.substitutionIndex],token));}
  220. var unusedSubstitutions=[];for(var i=0;i<substitutions.length;++i){if(i in usedSubstitutionIndexes)
  221. continue;unusedSubstitutions.push(substitutions[i]);}
  222. return{formattedResult:result,unusedSubstitutions:unusedSubstitutions};}
  223. function createSearchRegex(query,caseSensitive,isRegex)
  224. {var regexFlags=caseSensitive?"g":"gi";var regexObject;if(isRegex){try{regexObject=new RegExp(query,regexFlags);}catch(e){}}
  225. if(!regexObject)
  226. regexObject=createPlainTextSearchRegex(query,regexFlags);return regexObject;}
  227. function createPlainTextSearchRegex(query,flags)
  228. {var regexSpecialCharacters=String.regexSpecialCharacters();var regex="";for(var i=0;i<query.length;++i){var c=query.charAt(i);if(regexSpecialCharacters.indexOf(c)!=-1)
  229. regex+="\\";regex+=c;}
  230. return new RegExp(regex,flags||"");}
  231. function countRegexMatches(regex,content)
  232. {var text=content;var result=0;var match;while(text&&(match=regex.exec(text))){if(match[0].length>0)
  233. ++result;text=text.substring(match.index+1);}
  234. return result;}
  235. function spacesPadding(spacesCount)
  236. {return Array(spacesCount).join("\u00a0");}
  237. function numberToStringWithSpacesPadding(value,symbolsCount)
  238. {var numberString=value.toString();var paddingLength=Math.max(0,symbolsCount-numberString.length);return spacesPadding(paddingLength)+numberString;}
  239. Array.from=function(iterator)
  240. {var values=[];for(var iteratorValue=iterator.next();!iteratorValue.done;iteratorValue=iterator.next())
  241. values.push(iteratorValue.value);return values;}
  242. Set.fromArray=function(array)
  243. {return new Set(array);}
  244. Set.prototype.valuesArray=function()
  245. {return Array.from(this.values());}
  246. Set.prototype.remove=Set.prototype.delete;Map.prototype.remove=function(key)
  247. {var value=this.get(key);this.delete(key);return value;}
  248. Map.prototype.valuesArray=function()
  249. {return Array.from(this.values());}
  250. Map.prototype.keysArray=function()
  251. {return Array.from(this.keys());}
  252. var StringMultimap=function()
  253. {this._map=new Map();}
  254. StringMultimap.prototype={set:function(key,value)
  255. {var set=this._map.get(key);if(!set){set=new Set();this._map.set(key,set);}
  256. set.add(value);},get:function(key)
  257. {var result=this._map.get(key);if(!result)
  258. result=new Set();return result;},remove:function(key,value)
  259. {var values=this.get(key);values.remove(value);if(!values.size)
  260. this._map.remove(key);},removeAll:function(key)
  261. {this._map.remove(key);},keysArray:function()
  262. {return this._map.keysArray();},valuesArray:function()
  263. {var result=[];var keys=this.keysArray();for(var i=0;i<keys.length;++i)
  264. result.pushAll(this.get(keys[i]).valuesArray());return result;},clear:function()
  265. {this._map.clear();}}
  266. function loadXHR(url)
  267. {return new Promise(load);function load(successCallback,failureCallback)
  268. {function onReadyStateChanged()
  269. {if(xhr.readyState!==XMLHttpRequest.DONE)
  270. return;if(xhr.status!==200){xhr.onreadystatechange=null;failureCallback(new Error(xhr.status));return;}
  271. xhr.onreadystatechange=null;successCallback(xhr.responseText);}
  272. var xhr=new XMLHttpRequest();xhr.open("GET",url,true);xhr.onreadystatechange=onReadyStateChanged;xhr.send(null);}}
  273. function CallbackBarrier()
  274. {this._pendingIncomingCallbacksCount=0;}
  275. CallbackBarrier.prototype={createCallback:function(userCallback)
  276. {console.assert(!this._outgoingCallback,"CallbackBarrier.createCallback() is called after CallbackBarrier.callWhenDone()");++this._pendingIncomingCallbacksCount;return this._incomingCallback.bind(this,userCallback);},callWhenDone:function(callback)
  277. {console.assert(!this._outgoingCallback,"CallbackBarrier.callWhenDone() is called multiple times");this._outgoingCallback=callback;if(!this._pendingIncomingCallbacksCount)
  278. this._outgoingCallback();},_incomingCallback:function(userCallback)
  279. {console.assert(this._pendingIncomingCallbacksCount>0);if(userCallback){var args=Array.prototype.slice.call(arguments,1);userCallback.apply(null,args);}
  280. if(!--this._pendingIncomingCallbacksCount&&this._outgoingCallback)
  281. this._outgoingCallback();}}
  282. function suppressUnused(value)
  283. {}
  284. self.setImmediate=function(callback)
  285. {Promise.resolve().then(callback);return 0;}
  286. Promise.prototype.spread=function(callback)
  287. {return this.then(spreadPromise);function spreadPromise(arg)
  288. {return callback.apply(null,arg);}};(function(window){window.CodeMirror={};(function(){"use strict";function splitLines(string){return string.split(/\r?\n|\r/);};function StringStream(string){this.pos=this.start=0;this.string=string;this.lineStart=0;}
  289. StringStream.prototype={eol:function(){return this.pos>=this.string.length;},sol:function(){return this.pos==0;},peek:function(){return this.string.charAt(this.pos)||null;},next:function(){if(this.pos<this.string.length)
  290. return this.string.charAt(this.pos++);},eat:function(match){var ch=this.string.charAt(this.pos);if(typeof match=="string")var ok=ch==match;else var ok=ch&&(match.test?match.test(ch):match(ch));if(ok){++this.pos;return ch;}},eatWhile:function(match){var start=this.pos;while(this.eat(match)){}
  291. return this.pos>start;},eatSpace:function(){var start=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>start;},skipToEnd:function(){this.pos=this.string.length;},skipTo:function(ch){var found=this.string.indexOf(ch,this.pos);if(found>-1){this.pos=found;return true;}},backUp:function(n){this.pos-=n;},column:function(){return this.start-this.lineStart;},indentation:function(){return 0;},match:function(pattern,consume,caseInsensitive){if(typeof pattern=="string"){var cased=function(str){return caseInsensitive?str.toLowerCase():str;};var substr=this.string.substr(this.pos,pattern.length);if(cased(substr)==cased(pattern)){if(consume!==false)this.pos+=pattern.length;return true;}}else{var match=this.string.slice(this.pos).match(pattern);if(match&&match.index>0)return null;if(match&&consume!==false)this.pos+=match[0].length;return match;}},current:function(){return this.string.slice(this.start,this.pos);},hideFirstChars:function(n,inner){this.lineStart+=n;try{return inner();}
  292. finally{this.lineStart-=n;}}};CodeMirror.StringStream=StringStream;CodeMirror.startState=function(mode,a1,a2){return mode.startState?mode.startState(a1,a2):true;};var modes=CodeMirror.modes={},mimeModes=CodeMirror.mimeModes={};CodeMirror.defineMode=function(name,mode){modes[name]=mode;};CodeMirror.defineMIME=function(mime,spec){mimeModes[mime]=spec;};CodeMirror.resolveMode=function(spec){if(typeof spec=="string"&&mimeModes.hasOwnProperty(spec)){spec=mimeModes[spec];}else if(spec&&typeof spec.name=="string"&&mimeModes.hasOwnProperty(spec.name)){spec=mimeModes[spec.name];}
  293. if(typeof spec=="string")return{name:spec};else return spec||{name:"null"};};CodeMirror.getMode=function(options,spec){spec=CodeMirror.resolveMode(spec);var mfactory=modes[spec.name];if(!mfactory)throw new Error("Unknown mode: "+spec);return mfactory(options,spec);};CodeMirror.registerHelper=CodeMirror.registerGlobalHelper=Math.min;CodeMirror.defineMode("null",function(){return{token:function(stream){stream.skipToEnd();}};});CodeMirror.defineMIME("text/plain","null");CodeMirror.runMode=function(string,modespec,callback,options){var mode=CodeMirror.getMode({indentUnit:2},modespec);if(callback.nodeType==1){var tabSize=(options&&options.tabSize)||4;var node=callback,col=0;node.innerHTML="";callback=function(text,style){if(text=="\n"){node.appendChild(document.createElement("br"));col=0;return;}
  294. var content="";for(var pos=0;;){var idx=text.indexOf("\t",pos);if(idx==-1){content+=text.slice(pos);col+=text.length-pos;break;}else{col+=idx-pos;content+=text.slice(pos,idx);var size=tabSize-col%tabSize;col+=size;for(var i=0;i<size;++i)content+=" ";pos=idx+1;}}
  295. if(style){var sp=node.appendChild(document.createElement("span"));sp.className="cm-"+style.replace(/ +/g," cm-");sp.appendChild(document.createTextNode(content));}else{node.appendChild(document.createTextNode(content));}};}
  296. var lines=splitLines(string),state=(options&&options.state)||CodeMirror.startState(mode);for(var i=0,e=lines.length;i<e;++i){if(i)callback("\n");var stream=new CodeMirror.StringStream(lines[i]);if(!stream.string&&mode.blankLine)mode.blankLine(state);while(!stream.eol()){var style=mode.token(stream,state);callback(stream.current(),style,i,stream.start,state);stream.start=stream.pos;}}};})();}(this));(function(mod){if(typeof exports=="object"&&typeof module=="object")
  297. mod(require("../../lib/codemirror"));else if(typeof define=="function"&&define.amd)
  298. define(["../../lib/codemirror"],mod);else
  299. mod(CodeMirror);})(function(CodeMirror){"use strict";CodeMirror.defineMode("css",function(config,parserConfig){if(!parserConfig.propertyKeywords)parserConfig=CodeMirror.resolveMode("text/css");var indentUnit=config.indentUnit,tokenHooks=parserConfig.tokenHooks,mediaTypes=parserConfig.mediaTypes||{},mediaFeatures=parserConfig.mediaFeatures||{},propertyKeywords=parserConfig.propertyKeywords||{},nonStandardPropertyKeywords=parserConfig.nonStandardPropertyKeywords||{},colorKeywords=parserConfig.colorKeywords||{},valueKeywords=parserConfig.valueKeywords||{},fontProperties=parserConfig.fontProperties||{},allowNested=parserConfig.allowNested;var type,override;function ret(style,tp){type=tp;return style;}
  300. function tokenBase(stream,state){var ch=stream.next();if(tokenHooks[ch]){var result=tokenHooks[ch](stream,state);if(result!==false)return result;}
  301. if(ch=="@"){stream.eatWhile(/[\w\\\-]/);return ret("def",stream.current());}else if(ch=="="||(ch=="~"||ch=="|")&&stream.eat("=")){return ret(null,"compare");}else if(ch=="\""||ch=="'"){state.tokenize=tokenString(ch);return state.tokenize(stream,state);}else if(ch=="#"){stream.eatWhile(/[\w\\\-]/);return ret("atom","hash");}else if(ch=="!"){stream.match(/^\s*\w*/);return ret("keyword","important");}else if(/\d/.test(ch)||ch=="."&&stream.eat(/\d/)){stream.eatWhile(/[\w.%]/);return ret("number","unit");}else if(ch==="-"){if(/[\d.]/.test(stream.peek())){stream.eatWhile(/[\w.%]/);return ret("number","unit");}else if(stream.match(/^\w+-/)){return ret("meta","meta");}}else if(/[,+>*\/]/.test(ch)){return ret(null,"select-op");}else if(ch=="."&&stream.match(/^-?[_a-z][_a-z0-9-]*/i)){return ret("qualifier","qualifier");}else if(/[:;{}\[\]\(\)]/.test(ch)){return ret(null,ch);}else if(ch=="u"&&stream.match("rl(")){stream.backUp(1);state.tokenize=tokenParenthesized;return ret("property","word");}else if(/[\w\\\-]/.test(ch)){stream.eatWhile(/[\w\\\-]/);return ret("property","word");}else{return ret(null,null);}}
  302. function tokenString(quote){return function(stream,state){var escaped=false,ch;while((ch=stream.next())!=null){if(ch==quote&&!escaped){if(quote==")")stream.backUp(1);break;}
  303. escaped=!escaped&&ch=="\\";}
  304. if(ch==quote||!escaped&"e!=")")state.tokenize=null;return ret("string","string");};}
  305. function tokenParenthesized(stream,state){stream.next();if(!stream.match(/\s*[\"\')]/,false))
  306. state.tokenize=tokenString(")");else
  307. state.tokenize=null;return ret(null,"(");}
  308. function Context(type,indent,prev){this.type=type;this.indent=indent;this.prev=prev;}
  309. function pushContext(state,stream,type){state.context=new Context(type,stream.indentation()+indentUnit,state.context);return type;}
  310. function popContext(state){state.context=state.context.prev;return state.context.type;}
  311. function pass(type,stream,state){return states[state.context.type](type,stream,state);}
  312. function popAndPass(type,stream,state,n){for(var i=n||1;i>0;i--)
  313. state.context=state.context.prev;return pass(type,stream,state);}
  314. function wordAsValue(stream){var word=stream.current().toLowerCase();if(valueKeywords.hasOwnProperty(word))
  315. override="atom";else if(colorKeywords.hasOwnProperty(word))
  316. override="keyword";else
  317. override="variable";}
  318. var states={};states.top=function(type,stream,state){if(type=="{"){return pushContext(state,stream,"block");}else if(type=="}"&&state.context.prev){return popContext(state);}else if(type=="@media"){return pushContext(state,stream,"media");}else if(type=="@font-face"){return"font_face_before";}else if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(type)){return"keyframes";}else if(type&&type.charAt(0)=="@"){return pushContext(state,stream,"at");}else if(type=="hash"){override="builtin";}else if(type=="word"){override="tag";}else if(type=="variable-definition"){return"maybeprop";}else if(type=="interpolation"){return pushContext(state,stream,"interpolation");}else if(type==":"){return"pseudo";}else if(allowNested&&type=="("){return pushContext(state,stream,"parens");}
  319. return state.context.type;};states.block=function(type,stream,state){if(type=="word"){var word=stream.current().toLowerCase();if(propertyKeywords.hasOwnProperty(word)){override="property";return"maybeprop";}else if(nonStandardPropertyKeywords.hasOwnProperty(word)){override="string-2";return"maybeprop";}else if(allowNested){override=stream.match(/^\s*:/,false)?"property":"tag";return"block";}else{override+=" error";return"maybeprop";}}else if(type=="meta"){return"block";}else if(!allowNested&&(type=="hash"||type=="qualifier")){override="error";return"block";}else{return states.top(type,stream,state);}};states.maybeprop=function(type,stream,state){if(type==":")return pushContext(state,stream,"prop");return pass(type,stream,state);};states.prop=function(type,stream,state){if(type==";")return popContext(state);if(type=="{"&&allowNested)return pushContext(state,stream,"propBlock");if(type=="}"||type=="{")return popAndPass(type,stream,state);if(type=="(")return pushContext(state,stream,"parens");if(type=="hash"&&!/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(stream.current())){override+=" error";}else if(type=="word"){wordAsValue(stream);}else if(type=="interpolation"){return pushContext(state,stream,"interpolation");}
  320. return"prop";};states.propBlock=function(type,_stream,state){if(type=="}")return popContext(state);if(type=="word"){override="property";return"maybeprop";}
  321. return state.context.type;};states.parens=function(type,stream,state){if(type=="{"||type=="}")return popAndPass(type,stream,state);if(type==")")return popContext(state);if(type=="(")return pushContext(state,stream,"parens");if(type=="word")wordAsValue(stream);return"parens";};states.pseudo=function(type,stream,state){if(type=="word"){override="variable-3";return state.context.type;}
  322. return pass(type,stream,state);};states.media=function(type,stream,state){if(type=="(")return pushContext(state,stream,"media_parens");if(type=="}")return popAndPass(type,stream,state);if(type=="{")return popContext(state)&&pushContext(state,stream,allowNested?"block":"top");if(type=="word"){var word=stream.current().toLowerCase();if(word=="only"||word=="not"||word=="and")
  323. override="keyword";else if(mediaTypes.hasOwnProperty(word))
  324. override="attribute";else if(mediaFeatures.hasOwnProperty(word))
  325. override="property";else
  326. override="error";}
  327. return state.context.type;};states.media_parens=function(type,stream,state){if(type==")")return popContext(state);if(type=="{"||type=="}")return popAndPass(type,stream,state,2);return states.media(type,stream,state);};states.font_face_before=function(type,stream,state){if(type=="{")
  328. return pushContext(state,stream,"font_face");return pass(type,stream,state);};states.font_face=function(type,stream,state){if(type=="}")return popContext(state);if(type=="word"){if(!fontProperties.hasOwnProperty(stream.current().toLowerCase()))
  329. override="error";else
  330. override="property";return"maybeprop";}
  331. return"font_face";};states.keyframes=function(type,stream,state){if(type=="word"){override="variable";return"keyframes";}
  332. if(type=="{")return pushContext(state,stream,"top");return pass(type,stream,state);};states.at=function(type,stream,state){if(type==";")return popContext(state);if(type=="{"||type=="}")return popAndPass(type,stream,state);if(type=="word")override="tag";else if(type=="hash")override="builtin";return"at";};states.interpolation=function(type,stream,state){if(type=="}")return popContext(state);if(type=="{"||type==";")return popAndPass(type,stream,state);if(type!="variable")override="error";return"interpolation";};return{startState:function(base){return{tokenize:null,state:"top",context:new Context("top",base||0,null)};},token:function(stream,state){if(!state.tokenize&&stream.eatSpace())return null;var style=(state.tokenize||tokenBase)(stream,state);if(style&&typeof style=="object"){type=style[1];style=style[0];}
  333. override=style;state.state=states[state.state](type,stream,state);return override;},indent:function(state,textAfter){var cx=state.context,ch=textAfter&&textAfter.charAt(0);var indent=cx.indent;if(cx.type=="prop"&&(ch=="}"||ch==")"))cx=cx.prev;if(cx.prev&&(ch=="}"&&(cx.type=="block"||cx.type=="top"||cx.type=="interpolation"||cx.type=="font_face")||ch==")"&&(cx.type=="parens"||cx.type=="media_parens")||ch=="{"&&(cx.type=="at"||cx.type=="media"))){indent=cx.indent-indentUnit;cx=cx.prev;}
  334. return indent;},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",fold:"brace"};});function keySet(array){var keys={};for(var i=0;i<array.length;++i){keys[array[i]]=true;}
  335. return keys;}
  336. var mediaTypes_=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],mediaTypes=keySet(mediaTypes_);var mediaFeatures_=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid"],mediaFeatures=keySet(mediaFeatures_);var propertyKeywords_=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],propertyKeywords=keySet(propertyKeywords_);var nonStandardPropertyKeywords=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],nonStandardPropertyKeywords=keySet(nonStandardPropertyKeywords);var colorKeywords_=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],colorKeywords=keySet(colorKeywords_);var valueKeywords_=["above","absolute","activeborder","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","contain","content","content-box","context-menu","continuous","copy","cover","crop","cross","crosshair","currentcolor","cursive","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ew-resize","expanded","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-table","inset","inside","intrinsic","invert","italic","justify","kannada","katakana","katakana-iroha","keep-all","khmer","landscape","lao","large","larger","left","level","lighter","line-through","linear","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scroll","scrollbar","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","single","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","x-large","x-small","xor","xx-large","xx-small"],valueKeywords=keySet(valueKeywords_);var fontProperties_=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],fontProperties=keySet(fontProperties_);var allWords=mediaTypes_.concat(mediaFeatures_).concat(propertyKeywords_).concat(nonStandardPropertyKeywords).concat(colorKeywords_).concat(valueKeywords_);CodeMirror.registerHelper("hintWords","css",allWords);function tokenCComment(stream,state){var maybeEnd=false,ch;while((ch=stream.next())!=null){if(maybeEnd&&ch=="/"){state.tokenize=null;break;}
  337. maybeEnd=(ch=="*");}
  338. return["comment","comment"];}
  339. function tokenSGMLComment(stream,state){if(stream.skipTo("-->")){stream.match("-->");state.tokenize=null;}else{stream.skipToEnd();}
  340. return["comment","comment"];}
  341. CodeMirror.defineMIME("text/css",{mediaTypes:mediaTypes,mediaFeatures:mediaFeatures,propertyKeywords:propertyKeywords,nonStandardPropertyKeywords:nonStandardPropertyKeywords,colorKeywords:colorKeywords,valueKeywords:valueKeywords,fontProperties:fontProperties,tokenHooks:{"<":function(stream,state){if(!stream.match("!--"))return false;state.tokenize=tokenSGMLComment;return tokenSGMLComment(stream,state);},"/":function(stream,state){if(!stream.eat("*"))return false;state.tokenize=tokenCComment;return tokenCComment(stream,state);}},name:"css"});CodeMirror.defineMIME("text/x-scss",{mediaTypes:mediaTypes,mediaFeatures:mediaFeatures,propertyKeywords:propertyKeywords,nonStandardPropertyKeywords:nonStandardPropertyKeywords,colorKeywords:colorKeywords,valueKeywords:valueKeywords,fontProperties:fontProperties,allowNested:true,tokenHooks:{"/":function(stream,state){if(stream.eat("/")){stream.skipToEnd();return["comment","comment"];}else if(stream.eat("*")){state.tokenize=tokenCComment;return tokenCComment(stream,state);}else{return["operator","operator"];}},":":function(stream){if(stream.match(/\s*\{/))
  342. return[null,"{"];return false;},"$":function(stream){stream.match(/^[\w-]+/);if(stream.match(/^\s*:/,false))
  343. return["variable-2","variable-definition"];return["variable-2","variable"];},"#":function(stream){if(!stream.eat("{"))return false;return[null,"interpolation"];}},name:"css",helperType:"scss"});CodeMirror.defineMIME("text/x-less",{mediaTypes:mediaTypes,mediaFeatures:mediaFeatures,propertyKeywords:propertyKeywords,nonStandardPropertyKeywords:nonStandardPropertyKeywords,colorKeywords:colorKeywords,valueKeywords:valueKeywords,fontProperties:fontProperties,allowNested:true,tokenHooks:{"/":function(stream,state){if(stream.eat("/")){stream.skipToEnd();return["comment","comment"];}else if(stream.eat("*")){state.tokenize=tokenCComment;return tokenCComment(stream,state);}else{return["operator","operator"];}},"@":function(stream){if(stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,false))return false;stream.eatWhile(/[\w\\\-]/);if(stream.match(/^\s*:/,false))
  344. return["variable-2","variable-definition"];return["variable-2","variable"];},"&":function(){return["atom","atom"];}},name:"css",helperType:"less"});});;(function(mod){if(typeof exports=="object"&&typeof module=="object")
  345. mod(require("../../lib/codemirror"));else if(typeof define=="function"&&define.amd)
  346. define(["../../lib/codemirror"],mod);else
  347. mod(CodeMirror);})(function(CodeMirror){"use strict";CodeMirror.defineMode("javascript",function(config,parserConfig){var indentUnit=config.indentUnit;var statementIndent=parserConfig.statementIndent;var jsonldMode=parserConfig.jsonld;var jsonMode=parserConfig.json||jsonldMode;var isTS=parserConfig.typescript;var keywords=function(){function kw(type){return{type:type,style:"keyword"};}
  348. var A=kw("keyword a"),B=kw("keyword b"),C=kw("keyword c");var operator=kw("operator"),atom={type:"atom",style:"atom"};var jsKeywords={"if":kw("if"),"while":A,"with":A,"else":B,"do":B,"try":B,"finally":B,"return":C,"break":C,"continue":C,"new":C,"delete":C,"throw":C,"debugger":C,"var":kw("var"),"const":kw("var"),"let":kw("var"),"function":kw("function"),"catch":kw("catch"),"for":kw("for"),"switch":kw("switch"),"case":kw("case"),"default":kw("default"),"in":operator,"typeof":operator,"instanceof":operator,"true":atom,"false":atom,"null":atom,"undefined":atom,"NaN":atom,"Infinity":atom,"this":kw("this"),"module":kw("module"),"class":kw("class"),"super":kw("atom"),"yield":C,"export":kw("export"),"import":kw("import"),"extends":C};if(isTS){var type={type:"variable",style:"variable-3"};var tsKeywords={"interface":kw("interface"),"extends":kw("extends"),"constructor":kw("constructor"),"public":kw("public"),"private":kw("private"),"protected":kw("protected"),"static":kw("static"),"string":type,"number":type,"bool":type,"any":type};for(var attr in tsKeywords){jsKeywords[attr]=tsKeywords[attr];}}
  349. return jsKeywords;}();var isOperatorChar=/[+\-*&%=<>!?|~^]/;var isJsonldKeyword=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function readRegexp(stream){var escaped=false,next,inSet=false;while((next=stream.next())!=null){if(!escaped){if(next=="/"&&!inSet)return;if(next=="[")inSet=true;else if(inSet&&next=="]")inSet=false;}
  350. escaped=!escaped&&next=="\\";}}
  351. var type,content;function ret(tp,style,cont){type=tp;content=cont;return style;}
  352. function tokenBase(stream,state){var ch=stream.next();if(ch=='"'||ch=="'"){state.tokenize=tokenString(ch);return state.tokenize(stream,state);}else if(ch=="."&&stream.match(/^\d+(?:[eE][+\-]?\d+)?/)){return ret("number","number");}else if(ch=="."&&stream.match("..")){return ret("spread","meta");}else if(/[\[\]{}\(\),;\:\.]/.test(ch)){return ret(ch);}else if(ch=="="&&stream.eat(">")){return ret("=>","operator");}else if(ch=="0"&&stream.eat(/x/i)){stream.eatWhile(/[\da-f]/i);return ret("number","number");}else if(/\d/.test(ch)){stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);return ret("number","number");}else if(ch=="/"){if(stream.eat("*")){state.tokenize=tokenComment;return tokenComment(stream,state);}else if(stream.eat("/")){stream.skipToEnd();return ret("comment","comment");}else if(state.lastType=="operator"||state.lastType=="keyword c"||state.lastType=="sof"||/^[\[{}\(,;:]$/.test(state.lastType)){readRegexp(stream);stream.eatWhile(/[gimy]/);return ret("regexp","string-2");}else{stream.eatWhile(isOperatorChar);return ret("operator","operator",stream.current());}}else if(ch=="`"){state.tokenize=tokenQuasi;return tokenQuasi(stream,state);}else if(ch=="#"){stream.skipToEnd();return ret("error","error");}else if(isOperatorChar.test(ch)){stream.eatWhile(isOperatorChar);return ret("operator","operator",stream.current());}else{stream.eatWhile(/[\w\$_]/);var word=stream.current(),known=keywords.propertyIsEnumerable(word)&&keywords[word];return(known&&state.lastType!=".")?ret(known.type,known.style,word):ret("variable","variable",word);}}
  353. function tokenString(quote){return function(stream,state){var escaped=false,next;if(jsonldMode&&stream.peek()=="@"&&stream.match(isJsonldKeyword)){state.tokenize=tokenBase;return ret("jsonld-keyword","meta");}
  354. while((next=stream.next())!=null){if(next==quote&&!escaped)break;escaped=!escaped&&next=="\\";}
  355. if(!escaped)state.tokenize=tokenBase;return ret("string","string");};}
  356. function tokenComment(stream,state){var maybeEnd=false,ch;while(ch=stream.next()){if(ch=="/"&&maybeEnd){state.tokenize=tokenBase;break;}
  357. maybeEnd=(ch=="*");}
  358. return ret("comment","comment");}
  359. function tokenQuasi(stream,state){var escaped=false,next;while((next=stream.next())!=null){if(!escaped&&(next=="`"||next=="$"&&stream.eat("{"))){state.tokenize=tokenBase;break;}
  360. escaped=!escaped&&next=="\\";}
  361. return ret("quasi","string-2",stream.current());}
  362. var brackets="([{}])";function findFatArrow(stream,state){if(state.fatArrowAt)state.fatArrowAt=null;var arrow=stream.string.indexOf("=>",stream.start);if(arrow<0)return;var depth=0,sawSomething=false;for(var pos=arrow-1;pos>=0;--pos){var ch=stream.string.charAt(pos);var bracket=brackets.indexOf(ch);if(bracket>=0&&bracket<3){if(!depth){++pos;break;}
  363. if(--depth==0)break;}else if(bracket>=3&&bracket<6){++depth;}else if(/[$\w]/.test(ch)){sawSomething=true;}else if(sawSomething&&!depth){++pos;break;}}
  364. if(sawSomething&&!depth)state.fatArrowAt=pos;}
  365. var atomicTypes={"atom":true,"number":true,"variable":true,"string":true,"regexp":true,"this":true,"jsonld-keyword":true};function JSLexical(indented,column,type,align,prev,info){this.indented=indented;this.column=column;this.type=type;this.prev=prev;this.info=info;if(align!=null)this.align=align;}
  366. function inScope(state,varname){for(var v=state.localVars;v;v=v.next)
  367. if(v.name==varname)return true;for(var cx=state.context;cx;cx=cx.prev){for(var v=cx.vars;v;v=v.next)
  368. if(v.name==varname)return true;}}
  369. function parseJS(state,style,type,content,stream){var cc=state.cc;cx.state=state;cx.stream=stream;cx.marked=null,cx.cc=cc;cx.style=style;if(!state.lexical.hasOwnProperty("align"))
  370. state.lexical.align=true;while(true){var combinator=cc.length?cc.pop():jsonMode?expression:statement;if(combinator(type,content)){while(cc.length&&cc[cc.length-1].lex)
  371. cc.pop()();if(cx.marked)return cx.marked;if(type=="variable"&&inScope(state,content))return"variable-2";return style;}}}
  372. var cx={state:null,column:null,marked:null,cc:null};function pass(){for(var i=arguments.length-1;i>=0;i--)cx.cc.push(arguments[i]);}
  373. function cont(){pass.apply(null,arguments);return true;}
  374. function register(varname){function inList(list){for(var v=list;v;v=v.next)
  375. if(v.name==varname)return true;return false;}
  376. var state=cx.state;if(state.context){cx.marked="def";if(inList(state.localVars))return;state.localVars={name:varname,next:state.localVars};}else{if(inList(state.globalVars))return;if(parserConfig.globalVars)
  377. state.globalVars={name:varname,next:state.globalVars};}}
  378. var defaultVars={name:"this",next:{name:"arguments"}};function pushcontext(){cx.state.context={prev:cx.state.context,vars:cx.state.localVars};cx.state.localVars=defaultVars;}
  379. function popcontext(){cx.state.localVars=cx.state.context.vars;cx.state.context=cx.state.context.prev;}
  380. function pushlex(type,info){var result=function(){var state=cx.state,indent=state.indented;if(state.lexical.type=="stat")indent=state.lexical.indented;state.lexical=new JSLexical(indent,cx.stream.column(),type,null,state.lexical,info);};result.lex=true;return result;}
  381. function poplex(){var state=cx.state;if(state.lexical.prev){if(state.lexical.type==")")
  382. state.indented=state.lexical.indented;state.lexical=state.lexical.prev;}}
  383. poplex.lex=true;function expect(wanted){function exp(type){if(type==wanted)return cont();else if(wanted==";")return pass();else return cont(exp);};return exp;}
  384. function statement(type,value){if(type=="var")return cont(pushlex("vardef",value.length),vardef,expect(";"),poplex);if(type=="keyword a")return cont(pushlex("form"),expression,statement,poplex);if(type=="keyword b")return cont(pushlex("form"),statement,poplex);if(type=="{")return cont(pushlex("}"),block,poplex);if(type==";")return cont();if(type=="if"){if(cx.state.lexical.info=="else"&&cx.state.cc[cx.state.cc.length-1]==poplex)
  385. cx.state.cc.pop()();return cont(pushlex("form"),expression,statement,poplex,maybeelse);}
  386. if(type=="function")return cont(functiondef);if(type=="for")return cont(pushlex("form"),forspec,statement,poplex);if(type=="variable")return cont(pushlex("stat"),maybelabel);if(type=="switch")return cont(pushlex("form"),expression,pushlex("}","switch"),expect("{"),block,poplex,poplex);if(type=="case")return cont(expression,expect(":"));if(type=="default")return cont(expect(":"));if(type=="catch")return cont(pushlex("form"),pushcontext,expect("("),funarg,expect(")"),statement,poplex,popcontext);if(type=="module")return cont(pushlex("form"),pushcontext,afterModule,popcontext,poplex);if(type=="class")return cont(pushlex("form"),className,poplex);if(type=="export")return cont(pushlex("form"),afterExport,poplex);if(type=="import")return cont(pushlex("form"),afterImport,poplex);return pass(pushlex("stat"),expression,expect(";"),poplex);}
  387. function expression(type){return expressionInner(type,false);}
  388. function expressionNoComma(type){return expressionInner(type,true);}
  389. function expressionInner(type,noComma){if(cx.state.fatArrowAt==cx.stream.start){var body=noComma?arrowBodyNoComma:arrowBody;if(type=="(")return cont(pushcontext,pushlex(")"),commasep(pattern,")"),poplex,expect("=>"),body,popcontext);else if(type=="variable")return pass(pushcontext,pattern,expect("=>"),body,popcontext);}
  390. var maybeop=noComma?maybeoperatorNoComma:maybeoperatorComma;if(atomicTypes.hasOwnProperty(type))return cont(maybeop);if(type=="function")return cont(functiondef,maybeop);if(type=="keyword c")return cont(noComma?maybeexpressionNoComma:maybeexpression);if(type=="(")return cont(pushlex(")"),maybeexpression,comprehension,expect(")"),poplex,maybeop);if(type=="operator"||type=="spread")return cont(noComma?expressionNoComma:expression);if(type=="[")return cont(pushlex("]"),arrayLiteral,poplex,maybeop);if(type=="{")return contCommasep(objprop,"}",null,maybeop);if(type=="quasi"){return pass(quasi,maybeop);}
  391. return cont();}
  392. function maybeexpression(type){if(type.match(/[;\}\)\],]/))return pass();return pass(expression);}
  393. function maybeexpressionNoComma(type){if(type.match(/[;\}\)\],]/))return pass();return pass(expressionNoComma);}
  394. function maybeoperatorComma(type,value){if(type==",")return cont(expression);return maybeoperatorNoComma(type,value,false);}
  395. function maybeoperatorNoComma(type,value,noComma){var me=noComma==false?maybeoperatorComma:maybeoperatorNoComma;var expr=noComma==false?expression:expressionNoComma;if(value=="=>")return cont(pushcontext,noComma?arrowBodyNoComma:arrowBody,popcontext);if(type=="operator"){if(/\+\+|--/.test(value))return cont(me);if(value=="?")return cont(expression,expect(":"),expr);return cont(expr);}
  396. if(type=="quasi"){return pass(quasi,me);}
  397. if(type==";")return;if(type=="(")return contCommasep(expressionNoComma,")","call",me);if(type==".")return cont(property,me);if(type=="[")return cont(pushlex("]"),maybeexpression,expect("]"),poplex,me);}
  398. function quasi(type,value){if(type!="quasi")return pass();if(value.slice(value.length-2)!="${")return cont(quasi);return cont(expression,continueQuasi);}
  399. function continueQuasi(type){if(type=="}"){cx.marked="string-2";cx.state.tokenize=tokenQuasi;return cont(quasi);}}
  400. function arrowBody(type){findFatArrow(cx.stream,cx.state);if(type=="{")return pass(statement);return pass(expression);}
  401. function arrowBodyNoComma(type){findFatArrow(cx.stream,cx.state);if(type=="{")return pass(statement);return pass(expressionNoComma);}
  402. function maybelabel(type){if(type==":")return cont(poplex,statement);return pass(maybeoperatorComma,expect(";"),poplex);}
  403. function property(type){if(type=="variable"){cx.marked="property";return cont();}}
  404. function objprop(type,value){if(type=="variable"||cx.style=="keyword"){cx.marked="property";if(value=="get"||value=="set")return cont(getterSetter);return cont(afterprop);}else if(type=="number"||type=="string"){cx.marked=jsonldMode?"property":(cx.style+" property");return cont(afterprop);}else if(type=="jsonld-keyword"){return cont(afterprop);}else if(type=="["){return cont(expression,expect("]"),afterprop);}}
  405. function getterSetter(type){if(type!="variable")return pass(afterprop);cx.marked="property";return cont(functiondef);}
  406. function afterprop(type){if(type==":")return cont(expressionNoComma);if(type=="(")return pass(functiondef);}
  407. function commasep(what,end){function proceed(type){if(type==","){var lex=cx.state.lexical;if(lex.info=="call")lex.pos=(lex.pos||0)+1;return cont(what,proceed);}
  408. if(type==end)return cont();return cont(expect(end));}
  409. return function(type){if(type==end)return cont();return pass(what,proceed);};}
  410. function contCommasep(what,end,info){for(var i=3;i<arguments.length;i++)
  411. cx.cc.push(arguments[i]);return cont(pushlex(end,info),commasep(what,end),poplex);}
  412. function block(type){if(type=="}")return cont();return pass(statement,block);}
  413. function maybetype(type){if(isTS&&type==":")return cont(typedef);}
  414. function typedef(type){if(type=="variable"){cx.marked="variable-3";return cont();}}
  415. function vardef(){return pass(pattern,maybetype,maybeAssign,vardefCont);}
  416. function pattern(type,value){if(type=="variable"){register(value);return cont();}
  417. if(type=="[")return contCommasep(pattern,"]");if(type=="{")return contCommasep(proppattern,"}");}
  418. function proppattern(type,value){if(type=="variable"&&!cx.stream.match(/^\s*:/,false)){register(value);return cont(maybeAssign);}
  419. if(type=="variable")cx.marked="property";return cont(expect(":"),pattern,maybeAssign);}
  420. function maybeAssign(_type,value){if(value=="=")return cont(expressionNoComma);}
  421. function vardefCont(type){if(type==",")return cont(vardef);}
  422. function maybeelse(type,value){if(type=="keyword b"&&value=="else")return cont(pushlex("form","else"),statement,poplex);}
  423. function forspec(type){if(type=="(")return cont(pushlex(")"),forspec1,expect(")"),poplex);}
  424. function forspec1(type){if(type=="var")return cont(vardef,expect(";"),forspec2);if(type==";")return cont(forspec2);if(type=="variable")return cont(formaybeinof);return pass(expression,expect(";"),forspec2);}
  425. function formaybeinof(_type,value){if(value=="in"||value=="of"){cx.marked="keyword";return cont(expression);}
  426. return cont(maybeoperatorComma,forspec2);}
  427. function forspec2(type,value){if(type==";")return cont(forspec3);if(value=="in"||value=="of"){cx.marked="keyword";return cont(expression);}
  428. return pass(expression,expect(";"),forspec3);}
  429. function forspec3(type){if(type!=")")cont(expression);}
  430. function functiondef(type,value){if(value=="*"){cx.marked="keyword";return cont(functiondef);}
  431. if(type=="variable"){register(value);return cont(functiondef);}
  432. if(type=="(")return cont(pushcontext,pushlex(")"),commasep(funarg,")"),poplex,statement,popcontext);}
  433. function funarg(type){if(type=="spread")return cont(funarg);return pass(pattern,maybetype);}
  434. function className(type,value){if(type=="variable"){register(value);return cont(classNameAfter);}}
  435. function classNameAfter(type,value){if(value=="extends")return cont(expression,classNameAfter);if(type=="{")return cont(pushlex("}"),classBody,poplex);}
  436. function classBody(type,value){if(type=="variable"||cx.style=="keyword"){cx.marked="property";if(value=="get"||value=="set")return cont(classGetterSetter,functiondef,classBody);return cont(functiondef,classBody);}
  437. if(value=="*"){cx.marked="keyword";return cont(classBody);}
  438. if(type==";")return cont(classBody);if(type=="}")return cont();}
  439. function classGetterSetter(type){if(type!="variable")return pass();cx.marked="property";return cont();}
  440. function afterModule(type,value){if(type=="string")return cont(statement);if(type=="variable"){register(value);return cont(maybeFrom);}}
  441. function afterExport(_type,value){if(value=="*"){cx.marked="keyword";return cont(maybeFrom,expect(";"));}
  442. if(value=="default"){cx.marked="keyword";return cont(expression,expect(";"));}
  443. return pass(statement);}
  444. function afterImport(type){if(type=="string")return cont();return pass(importSpec,maybeFrom);}
  445. function importSpec(type,value){if(type=="{")return contCommasep(importSpec,"}");if(type=="variable")register(value);return cont();}
  446. function maybeFrom(_type,value){if(value=="from"){cx.marked="keyword";return cont(expression);}}
  447. function arrayLiteral(type){if(type=="]")return cont();return pass(expressionNoComma,maybeArrayComprehension);}
  448. function maybeArrayComprehension(type){if(type=="for")return pass(comprehension,expect("]"));if(type==",")return cont(commasep(expressionNoComma,"]"));return pass(commasep(expressionNoComma,"]"));}
  449. function comprehension(type){if(type=="for")return cont(forspec,comprehension);if(type=="if")return cont(expression,comprehension);}
  450. return{startState:function(basecolumn){var state={tokenize:tokenBase,lastType:"sof",cc:[],lexical:new JSLexical((basecolumn||0)-indentUnit,0,"block",false),localVars:parserConfig.localVars,context:parserConfig.localVars&&{vars:parserConfig.localVars},indented:0};if(parserConfig.globalVars&&typeof parserConfig.globalVars=="object")
  451. state.globalVars=parserConfig.globalVars;return state;},token:function(stream,state){if(stream.sol()){if(!state.lexical.hasOwnProperty("align"))
  452. state.lexical.align=false;state.indented=stream.indentation();findFatArrow(stream,state);}
  453. if(state.tokenize!=tokenComment&&stream.eatSpace())return null;var style=state.tokenize(stream,state);if(type=="comment")return style;state.lastType=type=="operator"&&(content=="++"||content=="--")?"incdec":type;return parseJS(state,style,type,content,stream);},indent:function(state,textAfter){if(state.tokenize==tokenComment)return CodeMirror.Pass;if(state.tokenize!=tokenBase)return 0;var firstChar=textAfter&&textAfter.charAt(0),lexical=state.lexical;if(!/^\s*else\b/.test(textAfter))for(var i=state.cc.length-1;i>=0;--i){var c=state.cc[i];if(c==poplex)lexical=lexical.prev;else if(c!=maybeelse)break;}
  454. if(lexical.type=="stat"&&firstChar=="}")lexical=lexical.prev;if(statementIndent&&lexical.type==")"&&lexical.prev.type=="stat")
  455. lexical=lexical.prev;var type=lexical.type,closing=firstChar==type;if(type=="vardef")return lexical.indented+(state.lastType=="operator"||state.lastType==","?lexical.info+1:0);else if(type=="form"&&firstChar=="{")return lexical.indented;else if(type=="form")return lexical.indented+indentUnit;else if(type=="stat")
  456. return lexical.indented+(state.lastType=="operator"||state.lastType==","?statementIndent||indentUnit:0);else if(lexical.info=="switch"&&!closing&&parserConfig.doubleIndentSwitch!=false)
  457. return lexical.indented+(/^(?:case|default)\b/.test(textAfter)?indentUnit:2*indentUnit);else if(lexical.align)return lexical.column+(closing?0:1);else return lexical.indented+(closing?0:indentUnit);},electricChars:":{}",blockCommentStart:jsonMode?null:"/*",blockCommentEnd:jsonMode?null:"*/",lineComment:jsonMode?null:"//",fold:"brace",helperType:jsonMode?"json":"javascript",jsonldMode:jsonldMode,jsonMode:jsonMode};});CodeMirror.registerHelper("wordChars","javascript",/[\\w$]/);CodeMirror.defineMIME("text/javascript","javascript");CodeMirror.defineMIME("text/ecmascript","javascript");CodeMirror.defineMIME("application/javascript","javascript");CodeMirror.defineMIME("application/x-javascript","javascript");CodeMirror.defineMIME("application/ecmascript","javascript");CodeMirror.defineMIME("application/json",{name:"javascript",json:true});CodeMirror.defineMIME("application/x-json",{name:"javascript",json:true});CodeMirror.defineMIME("application/ld+json",{name:"javascript",jsonld:true});CodeMirror.defineMIME("text/typescript",{name:"javascript",typescript:true});CodeMirror.defineMIME("application/typescript",{name:"javascript",typescript:true});});;(function(mod){if(typeof exports=="object"&&typeof module=="object")
  458. mod(require("../../lib/codemirror"));else if(typeof define=="function"&&define.amd)
  459. define(["../../lib/codemirror"],mod);else
  460. mod(CodeMirror);})(function(CodeMirror){"use strict";CodeMirror.defineMode("xml",function(config,parserConfig){var indentUnit=config.indentUnit;var multilineTagIndentFactor=parserConfig.multilineTagIndentFactor||1;var multilineTagIndentPastTag=parserConfig.multilineTagIndentPastTag;if(multilineTagIndentPastTag==null)multilineTagIndentPastTag=true;var Kludges=parserConfig.htmlMode?{autoSelfClosers:{'area':true,'base':true,'br':true,'col':true,'command':true,'embed':true,'frame':true,'hr':true,'img':true,'input':true,'keygen':true,'link':true,'meta':true,'param':true,'source':true,'track':true,'wbr':true},implicitlyClosed:{'dd':true,'li':true,'optgroup':true,'option':true,'p':true,'rp':true,'rt':true,'tbody':true,'td':true,'tfoot':true,'th':true,'tr':true},contextGrabbers:{'dd':{'dd':true,'dt':true},'dt':{'dd':true,'dt':true},'li':{'li':true},'option':{'option':true,'optgroup':true},'optgroup':{'optgroup':true},'p':{'address':true,'article':true,'aside':true,'blockquote':true,'dir':true,'div':true,'dl':true,'fieldset':true,'footer':true,'form':true,'h1':true,'h2':true,'h3':true,'h4':true,'h5':true,'h6':true,'header':true,'hgroup':true,'hr':true,'menu':true,'nav':true,'ol':true,'p':true,'pre':true,'section':true,'table':true,'ul':true},'rp':{'rp':true,'rt':true},'rt':{'rp':true,'rt':true},'tbody':{'tbody':true,'tfoot':true},'td':{'td':true,'th':true},'tfoot':{'tbody':true},'th':{'td':true,'th':true},'thead':{'tbody':true,'tfoot':true},'tr':{'tr':true}},doNotIndent:{"pre":true},allowUnquoted:true,allowMissing:true,caseFold:true}:{autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:false,allowMissing:false,caseFold:false};var alignCDATA=parserConfig.alignCDATA;var type,setStyle;function inText(stream,state){function chain(parser){state.tokenize=parser;return parser(stream,state);}
  461. var ch=stream.next();if(ch=="<"){if(stream.eat("!")){if(stream.eat("[")){if(stream.match("CDATA["))return chain(inBlock("atom","]]>"));else return null;}else if(stream.match("--")){return chain(inBlock("comment","-->"));}else if(stream.match("DOCTYPE",true,true)){stream.eatWhile(/[\w\._\-]/);return chain(doctype(1));}else{return null;}}else if(stream.eat("?")){stream.eatWhile(/[\w\._\-]/);state.tokenize=inBlock("meta","?>");return"meta";}else{type=stream.eat("/")?"closeTag":"openTag";state.tokenize=inTag;return"tag bracket";}}else if(ch=="&"){var ok;if(stream.eat("#")){if(stream.eat("x")){ok=stream.eatWhile(/[a-fA-F\d]/)&&stream.eat(";");}else{ok=stream.eatWhile(/[\d]/)&&stream.eat(";");}}else{ok=stream.eatWhile(/[\w\.\-:]/)&&stream.eat(";");}
  462. return ok?"atom":"error";}else{stream.eatWhile(/[^&<]/);return null;}}
  463. function inTag(stream,state){var ch=stream.next();if(ch==">"||(ch=="/"&&stream.eat(">"))){state.tokenize=inText;type=ch==">"?"endTag":"selfcloseTag";return"tag bracket";}else if(ch=="="){type="equals";return null;}else if(ch=="<"){state.tokenize=inText;state.state=baseState;state.tagName=state.tagStart=null;var next=state.tokenize(stream,state);return next?next+" tag error":"tag error";}else if(/[\'\"]/.test(ch)){state.tokenize=inAttribute(ch);state.stringStartCol=stream.column();return state.tokenize(stream,state);}else{stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/);return"word";}}
  464. function inAttribute(quote){var closure=function(stream,state){while(!stream.eol()){if(stream.next()==quote){state.tokenize=inTag;break;}}
  465. return"string";};closure.isInAttribute=true;return closure;}
  466. function inBlock(style,terminator){return function(stream,state){while(!stream.eol()){if(stream.match(terminator)){state.tokenize=inText;break;}
  467. stream.next();}
  468. return style;};}
  469. function doctype(depth){return function(stream,state){var ch;while((ch=stream.next())!=null){if(ch=="<"){state.tokenize=doctype(depth+1);return state.tokenize(stream,state);}else if(ch==">"){if(depth==1){state.tokenize=inText;break;}else{state.tokenize=doctype(depth-1);return state.tokenize(stream,state);}}}
  470. return"meta";};}
  471. function Context(state,tagName,startOfLine){this.prev=state.context;this.tagName=tagName;this.indent=state.indented;this.startOfLine=startOfLine;if(Kludges.doNotIndent.hasOwnProperty(tagName)||(state.context&&state.context.noIndent))
  472. this.noIndent=true;}
  473. function popContext(state){if(state.context)state.context=state.context.prev;}
  474. function maybePopContext(state,nextTagName){var parentTagName;while(true){if(!state.context){return;}
  475. parentTagName=state.context.tagName;if(!Kludges.contextGrabbers.hasOwnProperty(parentTagName)||!Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)){return;}
  476. popContext(state);}}
  477. function baseState(type,stream,state){if(type=="openTag"){state.tagStart=stream.column();return tagNameState;}else if(type=="closeTag"){return closeTagNameState;}else{return baseState;}}
  478. function tagNameState(type,stream,state){if(type=="word"){state.tagName=stream.current();setStyle="tag";return attrState;}else{setStyle="error";return tagNameState;}}
  479. function closeTagNameState(type,stream,state){if(type=="word"){var tagName=stream.current();if(state.context&&state.context.tagName!=tagName&&Kludges.implicitlyClosed.hasOwnProperty(state.context.tagName))
  480. popContext(state);if(state.context&&state.context.tagName==tagName){setStyle="tag";return closeState;}else{setStyle="tag error";return closeStateErr;}}else{setStyle="error";return closeStateErr;}}
  481. function closeState(type,_stream,state){if(type!="endTag"){setStyle="error";return closeState;}
  482. popContext(state);return baseState;}
  483. function closeStateErr(type,stream,state){setStyle="error";return closeState(type,stream,state);}
  484. function attrState(type,_stream,state){if(type=="word"){setStyle="attribute";return attrEqState;}else if(type=="endTag"||type=="selfcloseTag"){var tagName=state.tagName,tagStart=state.tagStart;state.tagName=state.tagStart=null;if(type=="selfcloseTag"||Kludges.autoSelfClosers.hasOwnProperty(tagName)){maybePopContext(state,tagName);}else{maybePopContext(state,tagName);state.context=new Context(state,tagName,tagStart==state.indented);}
  485. return baseState;}
  486. setStyle="error";return attrState;}
  487. function attrEqState(type,stream,state){if(type=="equals")return attrValueState;if(!Kludges.allowMissing)setStyle="error";return attrState(type,stream,state);}
  488. function attrValueState(type,stream,state){if(type=="string")return attrContinuedState;if(type=="word"&&Kludges.allowUnquoted){setStyle="string";return attrState;}
  489. setStyle="error";return attrState(type,stream,state);}
  490. function attrContinuedState(type,stream,state){if(type=="string")return attrContinuedState;return attrState(type,stream,state);}
  491. return{startState:function(){return{tokenize:inText,state:baseState,indented:0,tagName:null,tagStart:null,context:null};},token:function(stream,state){if(!state.tagName&&stream.sol())
  492. state.indented=stream.indentation();if(stream.eatSpace())return null;type=null;var style=state.tokenize(stream,state);if((style||type)&&style!="comment"){setStyle=null;state.state=state.state(type||style,stream,state);if(setStyle)
  493. style=setStyle=="error"?style+" error":setStyle;}
  494. return style;},indent:function(state,textAfter,fullLine){var context=state.context;if(state.tokenize.isInAttribute){if(state.tagStart==state.indented)
  495. return state.stringStartCol+1;else
  496. return state.indented+indentUnit;}
  497. if(context&&context.noIndent)return CodeMirror.Pass;if(state.tokenize!=inTag&&state.tokenize!=inText)
  498. return fullLine?fullLine.match(/^(\s*)/)[0].length:0;if(state.tagName){if(multilineTagIndentPastTag)
  499. return state.tagStart+state.tagName.length+2;else
  500. return state.tagStart+indentUnit*multilineTagIndentFactor;}
  501. if(alignCDATA&&/<!\[CDATA\[/.test(textAfter))return 0;var tagAfter=textAfter&&/^<(\/)?([\w_:\.-]*)/.exec(textAfter);if(tagAfter&&tagAfter[1]){while(context){if(context.tagName==tagAfter[2]){context=context.prev;break;}else if(Kludges.implicitlyClosed.hasOwnProperty(context.tagName)){context=context.prev;}else{break;}}}else if(tagAfter){while(context){var grabbers=Kludges.contextGrabbers[context.tagName];if(grabbers&&grabbers.hasOwnProperty(tagAfter[2]))
  502. context=context.prev;else
  503. break;}}
  504. while(context&&!context.startOfLine)
  505. context=context.prev;if(context)return context.indent+indentUnit;else return 0;},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"<!--",blockCommentEnd:"-->",configuration:parserConfig.htmlMode?"html":"xml",helperType:parserConfig.htmlMode?"html":"xml"};});CodeMirror.defineMIME("text/xml","xml");CodeMirror.defineMIME("application/xml","xml");if(!CodeMirror.mimeModes.hasOwnProperty("text/html"))
  506. CodeMirror.defineMIME("text/html",{name:"xml",htmlMode:true});});;(function(mod){if(typeof exports=="object"&&typeof module=="object")
  507. mod(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css"));else if(typeof define=="function"&&define.amd)
  508. define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],mod);else
  509. mod(CodeMirror);})(function(CodeMirror){"use strict";CodeMirror.defineMode("htmlmixed",function(config,parserConfig){var htmlMode=CodeMirror.getMode(config,{name:"xml",htmlMode:true,multilineTagIndentFactor:parserConfig.multilineTagIndentFactor,multilineTagIndentPastTag:parserConfig.multilineTagIndentPastTag});var cssMode=CodeMirror.getMode(config,"css");var scriptTypes=[],scriptTypesConf=parserConfig&&parserConfig.scriptTypes;scriptTypes.push({matches:/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i,mode:CodeMirror.getMode(config,"javascript")});if(scriptTypesConf)for(var i=0;i<scriptTypesConf.length;++i){var conf=scriptTypesConf[i];scriptTypes.push({matches:conf.matches,mode:conf.mode&&CodeMirror.getMode(config,conf.mode)});}
  510. scriptTypes.push({matches:/./,mode:CodeMirror.getMode(config,"text/plain")});function html(stream,state){var tagName=state.htmlState.tagName;if(tagName)tagName=tagName.toLowerCase();var style=htmlMode.token(stream,state.htmlState);if(tagName=="script"&&/\btag\b/.test(style)&&stream.current()==">"){var scriptType=stream.string.slice(Math.max(0,stream.pos-100),stream.pos).match(/\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i);scriptType=scriptType?scriptType[1]:"";if(scriptType&&/[\"\']/.test(scriptType.charAt(0)))scriptType=scriptType.slice(1,scriptType.length-1);for(var i=0;i<scriptTypes.length;++i){var tp=scriptTypes[i];if(typeof tp.matches=="string"?scriptType==tp.matches:tp.matches.test(scriptType)){if(tp.mode){state.token=script;state.localMode=tp.mode;state.localState=tp.mode.startState&&tp.mode.startState(htmlMode.indent(state.htmlState,""));}
  511. break;}}}else if(tagName=="style"&&/\btag\b/.test(style)&&stream.current()==">"){state.token=css;state.localMode=cssMode;state.localState=cssMode.startState(htmlMode.indent(state.htmlState,""));}
  512. return style;}
  513. function maybeBackup(stream,pat,style){var cur=stream.current();var close=cur.search(pat),m;if(close>-1)stream.backUp(cur.length-close);else if(m=cur.match(/<\/?$/)){stream.backUp(cur.length);if(!stream.match(pat,false))stream.match(cur);}
  514. return style;}
  515. function script(stream,state){if(stream.match(/^<\/\s*script\s*>/i,false)){state.token=html;state.localState=state.localMode=null;return html(stream,state);}
  516. return maybeBackup(stream,/<\/\s*script\s*>/,state.localMode.token(stream,state.localState));}
  517. function css(stream,state){if(stream.match(/^<\/\s*style\s*>/i,false)){state.token=html;state.localState=state.localMode=null;return html(stream,state);}
  518. return maybeBackup(stream,/<\/\s*style\s*>/,cssMode.token(stream,state.localState));}
  519. return{startState:function(){var state=htmlMode.startState();return{token:html,localMode:null,localState:null,htmlState:state};},copyState:function(state){if(state.localState)
  520. var local=CodeMirror.copyState(state.localMode,state.localState);return{token:state.token,localMode:state.localMode,localState:local,htmlState:CodeMirror.copyState(htmlMode,state.htmlState)};},token:function(stream,state){return state.token(stream,state);},indent:function(state,textAfter){if(!state.localMode||/^\s*<\//.test(textAfter))
  521. return htmlMode.indent(state.htmlState,textAfter);else if(state.localMode.indent)
  522. return state.localMode.indent(state.localState,textAfter);else
  523. return CodeMirror.Pass;},innerMode:function(state){return{state:state.localState||state.htmlState,mode:state.localMode||htmlMode};}};},"xml","javascript","css");CodeMirror.defineMIME("text/html","htmlmixed");});;FormatterWorker={createTokenizer:function(mimeType)
  524. {var mode=CodeMirror.getMode({indentUnit:2},mimeType);var state=CodeMirror.startState(mode);function tokenize(line,callback)
  525. {var stream=new CodeMirror.StringStream(line);while(!stream.eol()){var style=mode.token(stream,state);var value=stream.current();callback(value,style,stream.start,stream.start+value.length);stream.start=stream.pos;}}
  526. return tokenize;}};var FormatterParameters;var onmessage=function(event){var data=(event.data);if(!data.method)
  527. return;FormatterWorker[data.method](data.params);};FormatterWorker.format=function(params)
  528. {var indentString=params.indentString||"    ";var result={};if(params.mimeType==="text/html"){var formatter=new FormatterWorker.HTMLFormatter(indentString);result=formatter.format(params.content);}else if(params.mimeType==="text/css"){result.mapping={original:[0],formatted:[0]};result.content=FormatterWorker._formatCSS(params.content,result.mapping,0,0,indentString);}else{result.mapping={original:[0],formatted:[0]};result.content=FormatterWorker._formatScript(params.content,result.mapping,0,0,indentString);}
  529. postMessage(result);}
  530. FormatterWorker.javaScriptOutline=function(params)
  531. {var chunkSize=100000;var lines=params.content.split("\n");var outlineChunk=[];var previousIdentifier=null;var previousToken=null;var previousTokenType=null;var processedChunkCharacters=0;var addedFunction=false;var isReadingArguments=false;var argumentsText="";var currentFunction=null;var tokenizer=FormatterWorker.createTokenizer("text/javascript");for(var i=0;i<lines.length;++i){var line=lines[i];tokenizer(line,processToken);}
  532. function isJavaScriptIdentifier(tokenType)
  533. {if(!tokenType)
  534. return false;return tokenType.startsWith("variable")||tokenType.startsWith("property")||tokenType==="def";}
  535. function processToken(tokenValue,tokenType,column,newColumn)
  536. {if(tokenType==="property"&&previousTokenType==="property"&&(previousToken==="get"||previousToken==="set")){currentFunction={line:i,column:column,name:previousToken+" "+tokenValue};addedFunction=true;previousIdentifier=null;}else if(isJavaScriptIdentifier(tokenType)){previousIdentifier=tokenValue;if(tokenValue&&previousToken==="function"){currentFunction={line:i,column:column,name:tokenValue};addedFunction=true;previousIdentifier=null;}}else if(tokenType==="keyword"){if(tokenValue==="function"){if(previousIdentifier&&(previousToken==="="||previousToken===":")){currentFunction={line:i,column:column,name:previousIdentifier};addedFunction=true;previousIdentifier=null;}}}else if(tokenValue==="."&&isJavaScriptIdentifier(previousTokenType))
  537. previousIdentifier+=".";else if(tokenValue==="("&&addedFunction)
  538. isReadingArguments=true;if(isReadingArguments&&tokenValue)
  539. argumentsText+=tokenValue;if(tokenValue===")"&&isReadingArguments){addedFunction=false;isReadingArguments=false;currentFunction.arguments=argumentsText.replace(/,[\r\n\s]*/g,", ").replace(/([^,])[\r\n\s]+/g,"$1");argumentsText="";outlineChunk.push(currentFunction);}
  540. if(tokenValue.trim().length){previousToken=tokenValue;previousTokenType=tokenType;}
  541. processedChunkCharacters+=newColumn-column;if(processedChunkCharacters>=chunkSize){postMessage({chunk:outlineChunk,isLastChunk:false});outlineChunk=[];processedChunkCharacters=0;}}
  542. postMessage({chunk:outlineChunk,isLastChunk:true});}
  543. FormatterWorker.CSSParserStates={Initial:"Initial",Selector:"Selector",Style:"Style",PropertyName:"PropertyName",PropertyValue:"PropertyValue",AtRule:"AtRule",};FormatterWorker.parseCSS=function(params)
  544. {var chunkSize=100000;var lines=params.content.split("\n");var rules=[];var processedChunkCharacters=0;var state=FormatterWorker.CSSParserStates.Initial;var rule;var property;var UndefTokenType={};function processToken(tokenValue,tokenTypes,column,newColumn)
  545. {var tokenType=tokenTypes?tokenTypes.split(" ").keySet():UndefTokenType;switch(state){case FormatterWorker.CSSParserStates.Initial:if(tokenType["qualifier"]||tokenType["builtin"]||tokenType["tag"]){rule={selectorText:tokenValue,lineNumber:lineNumber,columnNumber:column,properties:[],};state=FormatterWorker.CSSParserStates.Selector;}else if(tokenType["def"]){rule={atRule:tokenValue,lineNumber:lineNumber,columnNumber:column,};state=FormatterWorker.CSSParserStates.AtRule;}
  546. break;case FormatterWorker.CSSParserStates.Selector:if(tokenValue==="{"&&tokenType===UndefTokenType){rule.selectorText=rule.selectorText.trim();state=FormatterWorker.CSSParserStates.Style;}else{rule.selectorText+=tokenValue;}
  547. break;case FormatterWorker.CSSParserStates.AtRule:if((tokenValue===";"||tokenValue==="{")&&tokenType===UndefTokenType){rule.atRule=rule.atRule.trim();rules.push(rule);state=FormatterWorker.CSSParserStates.Initial;}else{rule.atRule+=tokenValue;}
  548. break;case FormatterWorker.CSSParserStates.Style:if(tokenType["meta"]||tokenType["property"]){property={name:tokenValue,value:"",};state=FormatterWorker.CSSParserStates.PropertyName;}else if(tokenValue==="}"&&tokenType===UndefTokenType){rules.push(rule);state=FormatterWorker.CSSParserStates.Initial;}
  549. break;case FormatterWorker.CSSParserStates.PropertyName:if(tokenValue===":"&&tokenType===UndefTokenType){property.name=property.name.trim();state=FormatterWorker.CSSParserStates.PropertyValue;}else if(tokenType["property"]){property.name+=tokenValue;}
  550. break;case FormatterWorker.CSSParserStates.PropertyValue:if(tokenValue===";"&&tokenType===UndefTokenType){property.value=property.value.trim();rule.properties.push(property);state=FormatterWorker.CSSParserStates.Style;}else if(tokenValue==="}"&&tokenType===UndefTokenType){property.value=property.value.trim();rule.properties.push(property);rules.push(rule);state=FormatterWorker.CSSParserStates.Initial;}else if(!tokenType["comment"]){property.value+=tokenValue;}
  551. break;default:console.assert(false,"Unknown CSS parser state.");}
  552. processedChunkCharacters+=newColumn-column;if(processedChunkCharacters>chunkSize){postMessage({chunk:rules,isLastChunk:false});rules=[];processedChunkCharacters=0;}}
  553. var tokenizer=FormatterWorker.createTokenizer("text/css");var lineNumber;for(lineNumber=0;lineNumber<lines.length;++lineNumber){var line=lines[lineNumber];tokenizer(line,processToken);}
  554. postMessage({chunk:rules,isLastChunk:true});}
  555. FormatterWorker._formatScript=function(content,mapping,offset,formattedOffset,indentString)
  556. {var formattedContent;try{var tokenizer=new FormatterWorker.JavaScriptTokenizer(content);var builder=new FormatterWorker.JavaScriptFormattedContentBuilder(tokenizer.content(),mapping,offset,formattedOffset,indentString);var formatter=new FormatterWorker.JavaScriptFormatter(tokenizer,builder);formatter.format();formattedContent=builder.content();}catch(e){formattedContent=content;}
  557. return formattedContent;}
  558. FormatterWorker._formatCSS=function(content,mapping,offset,formattedOffset,indentString)
  559. {var formattedContent;try{var builder=new FormatterWorker.CSSFormattedContentBuilder(content,mapping,offset,formattedOffset,indentString);var formatter=new FormatterWorker.CSSFormatter(content,builder);formatter.format();formattedContent=builder.content();}catch(e){formattedContent=content;}
  560. return formattedContent;}
  561. FormatterWorker.HTMLFormatter=function(indentString)
  562. {this._indentString=indentString;}
  563. FormatterWorker.HTMLFormatter.prototype={format:function(content)
  564. {this.line=content;this._content=content;this._formattedContent="";this._mapping={original:[0],formatted:[0]};this._position=0;var scriptOpened=false;var styleOpened=false;var tokenizer=FormatterWorker.createTokenizer("text/html");var accumulatedTokenValue="";var accumulatedTokenStart=0;function processToken(tokenValue,tokenType,tokenStart,tokenEnd){if(!tokenType)
  565. return;tokenType=tokenType.split(" ").keySet();if(!tokenType["tag"])
  566. return;if(tokenType["bracket"]&&(tokenValue==="<"||tokenValue==="</")){accumulatedTokenValue=tokenValue;accumulatedTokenStart=tokenStart;return;}
  567. accumulatedTokenValue=accumulatedTokenValue+tokenValue.toLowerCase();if(accumulatedTokenValue==="<script"){scriptOpened=true;}else if(scriptOpened&&tokenValue===">"){scriptOpened=false;this._scriptStarted(tokenEnd);}else if(accumulatedTokenValue==="</script"){this._scriptEnded(accumulatedTokenStart);}else if(accumulatedTokenValue==="<style"){styleOpened=true;}else if(styleOpened&&tokenValue===">"){styleOpened=false;this._styleStarted(tokenEnd);}else if(accumulatedTokenValue==="</style"){this._styleEnded(accumulatedTokenStart);}
  568. accumulatedTokenValue="";}
  569. tokenizer(content,processToken.bind(this));this._formattedContent+=this._content.substring(this._position);return{content:this._formattedContent,mapping:this._mapping};},_scriptStarted:function(cursor)
  570. {this._handleSubFormatterStart(cursor);},_scriptEnded:function(cursor)
  571. {this._handleSubFormatterEnd(FormatterWorker._formatScript,cursor);},_styleStarted:function(cursor)
  572. {this._handleSubFormatterStart(cursor);},_styleEnded:function(cursor)
  573. {this._handleSubFormatterEnd(FormatterWorker._formatCSS,cursor);},_handleSubFormatterStart:function(cursor)
  574. {this._formattedContent+=this._content.substring(this._position,cursor);this._formattedContent+="\n";this._position=cursor;},_handleSubFormatterEnd:function(formatFunction,cursor)
  575. {if(cursor===this._position)
  576. return;var scriptContent=this._content.substring(this._position,cursor);this._mapping.original.push(this._position);this._mapping.formatted.push(this._formattedContent.length);var formattedScriptContent=formatFunction(scriptContent,this._mapping,this._position,this._formattedContent.length,this._indentString);this._formattedContent+=formattedScriptContent;this._position=cursor;}}
  577. function require()
  578. {return tokenizerHolder;}
  579. var exports={tokenizer:null};var tokenizerHolder=exports;;var KEYWORDS=array_to_hash(["break","case","catch","const","continue","default","delete","do","else","finally","for","function","if","in","instanceof","new","return","switch","throw","try","typeof","var","void","while","with"]);var RESERVED_WORDS=array_to_hash(["abstract","boolean","byte","char","class","debugger","double","enum","export","extends","final","float","goto","implements","import","int","interface","long","native","package","private","protected","public","short","static","super","synchronized","throws","transient","volatile"]);var KEYWORDS_BEFORE_EXPRESSION=array_to_hash(["return","new","delete","throw","else","case"]);var KEYWORDS_ATOM=array_to_hash(["false","null","true","undefined"]);var OPERATOR_CHARS=array_to_hash(characters("+-*&%=<>!?|~^"));var RE_HEX_NUMBER=/^0x[0-9a-f]+$/i;var RE_OCT_NUMBER=/^0[0-7]+$/;var RE_DEC_NUMBER=/^\d*\.?\d*(?:e[+-]?\d*(?:\d\.?|\.?\d)\d*)?$/i;var OPERATORS=array_to_hash(["in","instanceof","typeof","new","void","delete","++","--","+","-","!","~","&","|","^","*","/","%",">>","<<",">>>","<",">","<=",">=","==","===","!=","!==","?","=","+=","-=","/=","*=","%=",">>=","<<=",">>>=","%=","|=","^=","&=","&&","||"]);var WHITESPACE_CHARS=array_to_hash(characters(" \n\r\t"));var PUNC_BEFORE_EXPRESSION=array_to_hash(characters("[{}(,.;:"));var PUNC_CHARS=array_to_hash(characters("[]{}(),;:"));var REGEXP_MODIFIERS=array_to_hash(characters("gmsiy"));function is_alphanumeric_char(ch){ch=ch.charCodeAt(0);return(ch>=48&&ch<=57)||(ch>=65&&ch<=90)||(ch>=97&&ch<=122);};function is_identifier_char(ch){return is_alphanumeric_char(ch)||ch=="$"||ch=="_";};function is_digit(ch){ch=ch.charCodeAt(0);return ch>=48&&ch<=57;};function parse_js_number(num){if(RE_HEX_NUMBER.test(num)){return parseInt(num.substr(2),16);}else if(RE_OCT_NUMBER.test(num)){return parseInt(num.substr(1),8);}else if(RE_DEC_NUMBER.test(num)){return parseFloat(num);}};function JS_Parse_Error(message,line,col,pos){this.message=message;this.line=line;this.col=col;this.pos=pos;try{({})();}catch(ex){this.stack=ex.stack;};};JS_Parse_Error.prototype.toString=function(){return this.message+" (line: "+this.line+", col: "+this.col+", pos: "+this.pos+")"+"\n\n"+this.stack;};function js_error(message,line,col,pos){throw new JS_Parse_Error(message,line,col,pos);};function is_token(token,type,val){return token.type==type&&(val==null||token.value==val);};var EX_EOF={};function tokenizer($TEXT){var S={text:$TEXT.replace(/\r\n?|[\n\u2028\u2029]/g,"\n").replace(/^\uFEFF/,''),pos:0,tokpos:0,line:0,tokline:0,col:0,tokcol:0,newline_before:false,regex_allowed:false,comments_before:[]};function peek(){return S.text.charAt(S.pos);};function next(signal_eof){var ch=S.text.charAt(S.pos++);if(signal_eof&&!ch)
  580. throw EX_EOF;if(ch=="\n"){S.newline_before=true;++S.line;S.col=0;}else{++S.col;}
  581. return ch;};function eof(){return!S.peek();};function find(what,signal_eof){var pos=S.text.indexOf(what,S.pos);if(signal_eof&&pos==-1)throw EX_EOF;return pos;};function start_token(){S.tokline=S.line;S.tokcol=S.col;S.tokpos=S.pos;};function token(type,value,is_comment){S.regex_allowed=((type=="operator"&&!HOP(UNARY_POSTFIX,value))||(type=="keyword"&&HOP(KEYWORDS_BEFORE_EXPRESSION,value))||(type=="punc"&&HOP(PUNC_BEFORE_EXPRESSION,value)));var ret={type:type,value:value,line:S.tokline,col:S.tokcol,pos:S.tokpos,nlb:S.newline_before};if(!is_comment){ret.comments_before=S.comments_before;S.comments_before=[];}
  582. S.newline_before=false;return ret;};function skip_whitespace(){while(HOP(WHITESPACE_CHARS,peek()))
  583. next();};function read_while(pred){var ret="",ch=peek(),i=0;while(ch&&pred(ch,i++)){ret+=next();ch=peek();}
  584. return ret;};function parse_error(err){js_error(err,S.tokline,S.tokcol,S.tokpos);};function read_num(prefix){var has_e=false,after_e=false,has_x=false,has_dot=prefix==".";var num=read_while(function(ch,i){if(ch=="x"||ch=="X"){if(has_x)return false;return has_x=true;}
  585. if(!has_x&&(ch=="E"||ch=="e")){if(has_e)return false;return has_e=after_e=true;}
  586. if(ch=="-"){if(after_e||(i==0&&!prefix))return true;return false;}
  587. if(ch=="+")return after_e;after_e=false;if(ch=="."){if(!has_dot)
  588. return has_dot=true;return false;}
  589. return is_alphanumeric_char(ch);});if(prefix)
  590. num=prefix+num;var valid=parse_js_number(num);if(!isNaN(valid)){return token("num",valid);}else{parse_error("Invalid syntax: "+num);}};function read_escaped_char(){var ch=next(true);switch(ch){case"n":return"\n";case"r":return"\r";case"t":return"\t";case"b":return"\b";case"v":return"\v";case"f":return"\f";case"0":return"\0";case"x":return String.fromCharCode(hex_bytes(2));case"u":return String.fromCharCode(hex_bytes(4));default:return ch;}};function hex_bytes(n){var num=0;for(;n>0;--n){var digit=parseInt(next(true),16);if(isNaN(digit))
  591. parse_error("Invalid hex-character pattern in string");num=(num<<4)|digit;}
  592. return num;};function read_string(){return with_eof_error("Unterminated string constant",function(){var quote=next(),ret="";for(;;){var ch=next(true);if(ch=="\\")ch=read_escaped_char();else if(ch==quote)break;ret+=ch;}
  593. return token("string",ret);});};function read_line_comment(){next();var i=find("\n"),ret;if(i==-1){ret=S.text.substr(S.pos);S.pos=S.text.length;}else{ret=S.text.substring(S.pos,i);S.pos=i;}
  594. return token("comment1",ret,true);};function read_multiline_comment(){next();return with_eof_error("Unterminated multiline comment",function(){var i=find("*/",true),text=S.text.substring(S.pos,i),tok=token("comment2",text,true);S.pos=i+2;S.line+=text.split("\n").length-1;S.newline_before=text.indexOf("\n")>=0;return tok;});};function read_regexp(){return with_eof_error("Unterminated regular expression",function(){var prev_backslash=false,regexp="",ch,in_class=false;while((ch=next(true)))if(prev_backslash){regexp+="\\"+ch;prev_backslash=false;}else if(ch=="["){in_class=true;regexp+=ch;}else if(ch=="]"&&in_class){in_class=false;regexp+=ch;}else if(ch=="/"&&!in_class){break;}else if(ch=="\\"){prev_backslash=true;}else{regexp+=ch;}
  595. var mods=read_while(function(ch){return HOP(REGEXP_MODIFIERS,ch);});return token("regexp",[regexp,mods]);});};function read_operator(prefix){function grow(op){if(!peek())return op;var bigger=op+peek();if(HOP(OPERATORS,bigger)){next();return grow(bigger);}else{return op;}};return token("operator",grow(prefix||next()));};function handle_slash(){next();var regex_allowed=S.regex_allowed;switch(peek()){case"/":S.comments_before.push(read_line_comment());S.regex_allowed=regex_allowed;return next_token();case"*":S.comments_before.push(read_multiline_comment());S.regex_allowed=regex_allowed;return next_token();}
  596. return S.regex_allowed?read_regexp():read_operator("/");};function handle_dot(){next();return is_digit(peek())?read_num("."):token("punc",".");};function read_word(){var word=read_while(is_identifier_char);return!HOP(KEYWORDS,word)?token("name",word):HOP(OPERATORS,word)?token("operator",word):HOP(KEYWORDS_ATOM,word)?token("atom",word):token("keyword",word);};function with_eof_error(eof_error,cont){try{return cont();}catch(ex){if(ex===EX_EOF)parse_error(eof_error);else throw ex;}};function next_token(force_regexp){if(force_regexp)
  597. return read_regexp();skip_whitespace();start_token();var ch=peek();if(!ch)return token("eof");if(is_digit(ch))return read_num();if(ch=='"'||ch=="'")return read_string();if(HOP(PUNC_CHARS,ch))return token("punc",next());if(ch==".")return handle_dot();if(ch=="/")return handle_slash();if(HOP(OPERATOR_CHARS,ch))return read_operator();if(is_identifier_char(ch))return read_word();parse_error("Unexpected character '"+ch+"'");};next_token.context=function(nc){if(nc)S=nc;return S;};return next_token;};var UNARY_PREFIX=array_to_hash(["typeof","void","delete","--","++","!","~","-","+"]);var UNARY_POSTFIX=array_to_hash(["--","++"]);var ASSIGNMENT=(function(a,ret,i){while(i<a.length){ret[a[i]]=a[i].substr(0,a[i].length-1);i++;}
  598. return ret;})(["+=","-=","/=","*=","%=",">>=","<<=",">>>=","|=","^=","&="],{"=":true},0);var PRECEDENCE=(function(a,ret){for(var i=0,n=1;i<a.length;++i,++n){var b=a[i];for(var j=0;j<b.length;++j){ret[b[j]]=n;}}
  599. return ret;})([["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"]],{});var STATEMENTS_WITH_LABELS=array_to_hash(["for","do","while","switch"]);var ATOMIC_START_TOKEN=array_to_hash(["atom","num","string","regexp","name"]);function NodeWithToken(str,start,end){this.name=str;this.start=start;this.end=end;};NodeWithToken.prototype.toString=function(){return this.name;};function parse($TEXT,strict_mode,embed_tokens){var S={input:typeof $TEXT=="string"?tokenizer($TEXT,true):$TEXT,token:null,prev:null,peeked:null,in_function:0,in_loop:0,labels:[]};S.token=next();function is(type,value){return is_token(S.token,type,value);};function peek(){return S.peeked||(S.peeked=S.input());};function next(){S.prev=S.token;if(S.peeked){S.token=S.peeked;S.peeked=null;}else{S.token=S.input();}
  600. return S.token;};function prev(){return S.prev;};function croak(msg,line,col,pos){var ctx=S.input.context();js_error(msg,line!=null?line:ctx.tokline,col!=null?col:ctx.tokcol,pos!=null?pos:ctx.tokpos);};function token_error(token,msg){croak(msg,token.line,token.col);};function unexpected(token){if(token==null)
  601. token=S.token;token_error(token,"Unexpected token: "+token.type+" ("+token.value+")");};function expect_token(type,val){if(is(type,val)){return next();}
  602. token_error(S.token,"Unexpected token "+S.token.type+", expected "+type);};function expect(punc){return expect_token("punc",punc);};function can_insert_semicolon(){return!strict_mode&&(S.token.nlb||is("eof")||is("punc","}"));};function semicolon(){if(is("punc",";"))next();else if(!can_insert_semicolon())unexpected();};function as(){return slice(arguments);};function parenthesised(){expect("(");var ex=expression();expect(")");return ex;};function add_tokens(str,start,end){return new NodeWithToken(str,start,end);};var statement=embed_tokens?function(){var start=S.token;var stmt=$statement();stmt[0]=add_tokens(stmt[0],start,prev());return stmt;}:$statement;function $statement(){if(is("operator","/")){S.peeked=null;S.token=S.input(true);}
  603. switch(S.token.type){case"num":case"string":case"regexp":case"operator":case"atom":return simple_statement();case"name":return is_token(peek(),"punc",":")?labeled_statement(prog1(S.token.value,next,next)):simple_statement();case"punc":switch(S.token.value){case"{":return as("block",block_());case"[":case"(":return simple_statement();case";":next();return as("block");default:unexpected();}
  604. case"keyword":switch(prog1(S.token.value,next)){case"break":return break_cont("break");case"continue":return break_cont("continue");case"debugger":semicolon();return as("debugger");case"do":return(function(body){expect_token("keyword","while");return as("do",prog1(parenthesised,semicolon),body);})(in_loop(statement));case"for":return for_();case"function":return function_(true);case"if":return if_();case"return":if(S.in_function==0)
  605. croak("'return' outside of function");return as("return",is("punc",";")?(next(),null):can_insert_semicolon()?null:prog1(expression,semicolon));case"switch":return as("switch",parenthesised(),switch_block_());case"throw":return as("throw",prog1(expression,semicolon));case"try":return try_();case"var":return prog1(var_,semicolon);case"const":return prog1(const_,semicolon);case"while":return as("while",parenthesised(),in_loop(statement));case"with":return as("with",parenthesised(),statement());default:unexpected();}}};function labeled_statement(label){S.labels.push(label);var start=S.token,stat=statement();if(strict_mode&&!HOP(STATEMENTS_WITH_LABELS,stat[0]))
  606. unexpected(start);S.labels.pop();return as("label",label,stat);};function simple_statement(){return as("stat",prog1(expression,semicolon));};function break_cont(type){var name=is("name")?S.token.value:null;if(name!=null){next();if(!member(name,S.labels))
  607. croak("Label "+name+" without matching loop or statement");}
  608. else if(S.in_loop==0)
  609. croak(type+" not inside a loop or switch");semicolon();return as(type,name);};function for_(){expect("(");var has_var=is("keyword","var");if(has_var)
  610. next();if(is("name")&&is_token(peek(),"operator","in")){var name=S.token.value;next();next();var obj=expression();expect(")");return as("for-in",has_var,name,obj,in_loop(statement));}else{var init=is("punc",";")?null:has_var?var_():expression();expect(";");var test=is("punc",";")?null:expression();expect(";");var step=is("punc",")")?null:expression();expect(")");return as("for",init,test,step,in_loop(statement));}};function function_(in_statement){var name=is("name")?prog1(S.token.value,next):null;if(in_statement&&!name)
  611. unexpected();expect("(");return as(in_statement?"defun":"function",name,(function(first,a){while(!is("punc",")")){if(first)first=false;else expect(",");if(!is("name"))unexpected();a.push(S.token.value);next();}
  612. next();return a;})(true,[]),(function(){++S.in_function;var loop=S.in_loop;S.in_loop=0;var a=block_();--S.in_function;S.in_loop=loop;return a;})());};function if_(){var cond=parenthesised(),body=statement(),belse;if(is("keyword","else")){next();belse=statement();}
  613. return as("if",cond,body,belse);};function block_(){expect("{");var a=[];while(!is("punc","}")){if(is("eof"))unexpected();a.push(statement());}
  614. next();return a;};var switch_block_=curry(in_loop,function(){expect("{");var a=[],cur=null;while(!is("punc","}")){if(is("eof"))unexpected();if(is("keyword","case")){next();cur=[];a.push([expression(),cur]);expect(":");}
  615. else if(is("keyword","default")){next();expect(":");cur=[];a.push([null,cur]);}
  616. else{if(!cur)unexpected();cur.push(statement());}}
  617. next();return a;});function try_(){var body=block_(),bcatch,bfinally;if(is("keyword","catch")){next();expect("(");if(!is("name"))
  618. croak("Name expected");var name=S.token.value;next();expect(")");bcatch=[name,block_()];}
  619. if(is("keyword","finally")){next();bfinally=block_();}
  620. if(!bcatch&&!bfinally)
  621. croak("Missing catch/finally blocks");return as("try",body,bcatch,bfinally);};function vardefs(){var a=[];for(;;){if(!is("name"))
  622. unexpected();var name=S.token.value;next();if(is("operator","=")){next();a.push([name,expression(false)]);}else{a.push([name]);}
  623. if(!is("punc",","))
  624. break;next();}
  625. return a;};function var_(){return as("var",vardefs());};function const_(){return as("const",vardefs());};function new_(){var newexp=expr_atom(false),args;if(is("punc","(")){next();args=expr_list(")");}else{args=[];}
  626. return subscripts(as("new",newexp,args),true);};function expr_atom(allow_calls){if(is("operator","new")){next();return new_();}
  627. if(is("operator")&&HOP(UNARY_PREFIX,S.token.value)){return make_unary("unary-prefix",prog1(S.token.value,next),expr_atom(allow_calls));}
  628. if(is("punc")){switch(S.token.value){case"(":next();return subscripts(prog1(expression,curry(expect,")")),allow_calls);case"[":next();return subscripts(array_(),allow_calls);case"{":next();return subscripts(object_(),allow_calls);}
  629. unexpected();}
  630. if(is("keyword","function")){next();return subscripts(function_(false),allow_calls);}
  631. if(HOP(ATOMIC_START_TOKEN,S.token.type)){var atom=S.token.type=="regexp"?as("regexp",S.token.value[0],S.token.value[1]):as(S.token.type,S.token.value);return subscripts(prog1(atom,next),allow_calls);}
  632. unexpected();};function expr_list(closing,allow_trailing_comma,allow_empty){var first=true,a=[];while(!is("punc",closing)){if(first)first=false;else expect(",");if(allow_trailing_comma&&is("punc",closing))break;if(is("punc",",")&&allow_empty){a.push(["atom","undefined"]);}else{a.push(expression(false));}}
  633. next();return a;};function array_(){return as("array",expr_list("]",!strict_mode,true));};function object_(){var first=true,a=[];while(!is("punc","}")){if(first)first=false;else expect(",");if(!strict_mode&&is("punc","}"))
  634. break;var type=S.token.type;var name=as_property_name();if(type=="name"&&(name=="get"||name=="set")&&!is("punc",":")){a.push([as_name(),function_(false),name]);}else{expect(":");a.push([name,expression(false)]);}}
  635. next();return as("object",a);};function as_property_name(){switch(S.token.type){case"num":case"string":return prog1(S.token.value,next);}
  636. return as_name();};function as_name(){switch(S.token.type){case"name":case"operator":case"keyword":case"atom":return prog1(S.token.value,next);default:unexpected();}};function subscripts(expr,allow_calls){if(is("punc",".")){next();return subscripts(as("dot",expr,as_name()),allow_calls);}
  637. if(is("punc","[")){next();return subscripts(as("sub",expr,prog1(expression,curry(expect,"]"))),allow_calls);}
  638. if(allow_calls&&is("punc","(")){next();return subscripts(as("call",expr,expr_list(")")),true);}
  639. if(allow_calls&&is("operator")&&HOP(UNARY_POSTFIX,S.token.value)){return prog1(curry(make_unary,"unary-postfix",S.token.value,expr),next);}
  640. return expr;};function make_unary(tag,op,expr){if((op=="++"||op=="--")&&!is_assignable(expr))
  641. croak("Invalid use of "+op+" operator");return as(tag,op,expr);};function expr_op(left,min_prec){var op=is("operator")?S.token.value:null;var prec=op!=null?PRECEDENCE[op]:null;if(prec!=null&&prec>min_prec){next();var right=expr_op(expr_atom(true),prec);return expr_op(as("binary",op,left,right),min_prec);}
  642. return left;};function expr_ops(){return expr_op(expr_atom(true),0);};function maybe_conditional(){var expr=expr_ops();if(is("operator","?")){next();var yes=expression(false);expect(":");return as("conditional",expr,yes,expression(false));}
  643. return expr;};function is_assignable(expr){switch(expr[0]){case"dot":case"sub":return true;case"name":return expr[1]!="this";}};function maybe_assign(){var left=maybe_conditional(),val=S.token.value;if(is("operator")&&HOP(ASSIGNMENT,val)){if(is_assignable(left)){next();return as("assign",ASSIGNMENT[val],left,maybe_assign());}
  644. croak("Invalid assignment");}
  645. return left;};function expression(commas){if(arguments.length==0)
  646. commas=true;var expr=maybe_assign();if(commas&&is("punc",",")){next();return as("seq",expr,expression());}
  647. return expr;};function in_loop(cont){try{++S.in_loop;return cont();}finally{--S.in_loop;}};return as("toplevel",(function(a){while(!is("eof"))
  648. a.push(statement());return a;})([]));};function curry(f){var args=slice(arguments,1);return function(){return f.apply(this,args.concat(slice(arguments)));};};function prog1(ret){if(ret instanceof Function)
  649. ret=ret();for(var i=1,n=arguments.length;--n>0;++i)
  650. arguments[i]();return ret;};function array_to_hash(a){var ret={};for(var i=0;i<a.length;++i)
  651. ret[a[i]]=true;return ret;};function slice(a,start){return Array.prototype.slice.call(a,start==null?0:start);};function characters(str){return str.split("");};function member(name,array){for(var i=array.length;--i>=0;)
  652. if(array[i]===name)
  653. return true;return false;};function HOP(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop);};exports.tokenizer=tokenizer;exports.parse=parse;exports.slice=slice;exports.curry=curry;exports.member=member;exports.array_to_hash=array_to_hash;exports.PRECEDENCE=PRECEDENCE;exports.KEYWORDS_ATOM=KEYWORDS_ATOM;exports.RESERVED_WORDS=RESERVED_WORDS;exports.KEYWORDS=KEYWORDS;exports.ATOMIC_START_TOKEN=ATOMIC_START_TOKEN;exports.OPERATORS=OPERATORS;exports.is_alphanumeric_char=is_alphanumeric_char;exports.is_identifier_char=is_identifier_char;;FormatterWorker.JavaScriptFormatter=function(tokenizer,builder)
  654. {this._tokenizer=tokenizer;this._builder=builder;this._token=null;this._nextToken=this._tokenizer.next();}
  655. FormatterWorker.JavaScriptFormatter._identifierRegex=/^[$A-Z_][0-9A-Z_$]*$/i;FormatterWorker.JavaScriptFormatter.prototype={format:function()
  656. {this._parseSourceElements(FormatterWorker.JavaScriptTokens.EOS);this._consume(FormatterWorker.JavaScriptTokens.EOS);},_peek:function()
  657. {return this._nextToken.token;},_next:function()
  658. {if(this._token&&this._token.token===FormatterWorker.JavaScriptTokens.EOS)
  659. throw"Unexpected EOS token";this._builder.addToken(this._nextToken);this._token=this._nextToken;this._nextToken=this._tokenizer.next(this._forceRegexp);this._forceRegexp=false;return this._token.token;},_consume:function(token)
  660. {var next=this._next();if(next!==token)
  661. throw"Unexpected token in consume: expected "+token+", actual "+next;},_expect:function(token)
  662. {var next=this._next();if(next!==token)
  663. throw"Unexpected token: expected "+token+", actual "+next;},_expectGeneralIdentifier:function()
  664. {var next=this._next();if(next!==FormatterWorker.JavaScriptTokens.IDENTIFIER&&!FormatterWorker.JavaScriptFormatter._identifierRegex.test(this._token.value))
  665. throw"Unexpected token: expected javascript identifier, actual "+this._token.value;},_expectSemicolon:function()
  666. {if(this._peek()===FormatterWorker.JavaScriptTokens.SEMICOLON)
  667. this._consume(FormatterWorker.JavaScriptTokens.SEMICOLON);},_hasLineTerminatorBeforeNext:function()
  668. {return this._nextToken.nlb;},_parseSourceElements:function(endToken)
  669. {while(this._peek()!==endToken){this._parseStatement();this._builder.addNewLine();}},_parseStatementOrBlock:function()
  670. {if(this._peek()===FormatterWorker.JavaScriptTokens.LBRACE){this._builder.addSpace();this._parseBlock();return true;}
  671. this._builder.addNewLine();this._builder.increaseNestingLevel();this._parseStatement();this._builder.decreaseNestingLevel();},_parseStatement:function()
  672. {switch(this._peek()){case FormatterWorker.JavaScriptTokens.LBRACE:return this._parseBlock();case FormatterWorker.JavaScriptTokens.CONST:case FormatterWorker.JavaScriptTokens.VAR:return this._parseVariableStatement();case FormatterWorker.JavaScriptTokens.SEMICOLON:return this._next();case FormatterWorker.JavaScriptTokens.IF:return this._parseIfStatement();case FormatterWorker.JavaScriptTokens.DO:return this._parseDoWhileStatement();case FormatterWorker.JavaScriptTokens.WHILE:return this._parseWhileStatement();case FormatterWorker.JavaScriptTokens.FOR:return this._parseForStatement();case FormatterWorker.JavaScriptTokens.CONTINUE:return this._parseContinueStatement();case FormatterWorker.JavaScriptTokens.BREAK:return this._parseBreakStatement();case FormatterWorker.JavaScriptTokens.RETURN:return this._parseReturnStatement();case FormatterWorker.JavaScriptTokens.WITH:return this._parseWithStatement();case FormatterWorker.JavaScriptTokens.SWITCH:return this._parseSwitchStatement();case FormatterWorker.JavaScriptTokens.THROW:return this._parseThrowStatement();case FormatterWorker.JavaScriptTokens.TRY:return this._parseTryStatement();case FormatterWorker.JavaScriptTokens.FUNCTION:return this._parseFunctionDeclaration();case FormatterWorker.JavaScriptTokens.DEBUGGER:return this._parseDebuggerStatement();default:return this._parseExpressionOrLabelledStatement();}},_parseFunctionDeclaration:function()
  673. {this._expect(FormatterWorker.JavaScriptTokens.FUNCTION);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);this._parseFunctionLiteral();},_parseBlock:function()
  674. {this._expect(FormatterWorker.JavaScriptTokens.LBRACE);this._builder.addNewLine();this._builder.increaseNestingLevel();while(this._peek()!==FormatterWorker.JavaScriptTokens.RBRACE){this._parseStatement();this._builder.addNewLine();}
  675. this._builder.decreaseNestingLevel();this._expect(FormatterWorker.JavaScriptTokens.RBRACE);},_parseVariableStatement:function()
  676. {this._parseVariableDeclarations();this._expectSemicolon();},_parseVariableDeclarations:function()
  677. {if(this._peek()===FormatterWorker.JavaScriptTokens.VAR)
  678. this._consume(FormatterWorker.JavaScriptTokens.VAR);else
  679. this._consume(FormatterWorker.JavaScriptTokens.CONST);this._builder.addSpace();var isFirstVariable=true;do{if(!isFirstVariable){this._consume(FormatterWorker.JavaScriptTokens.COMMA);this._builder.addSpace();}
  680. isFirstVariable=false;this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);if(this._peek()===FormatterWorker.JavaScriptTokens.ASSIGN){this._builder.addSpace();this._consume(FormatterWorker.JavaScriptTokens.ASSIGN);this._builder.addSpace();this._parseAssignmentExpression();}}while(this._peek()===FormatterWorker.JavaScriptTokens.COMMA);},_parseExpressionOrLabelledStatement:function()
  681. {this._parseExpression();if(this._peek()===FormatterWorker.JavaScriptTokens.COLON){this._expect(FormatterWorker.JavaScriptTokens.COLON);this._builder.addSpace();this._parseStatement();}
  682. this._expectSemicolon();},_parseIfStatement:function()
  683. {this._expect(FormatterWorker.JavaScriptTokens.IF);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LPAREN);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RPAREN);var isBlock=this._parseStatementOrBlock();if(this._peek()===FormatterWorker.JavaScriptTokens.ELSE){if(isBlock)
  684. this._builder.addSpace();else
  685. this._builder.addNewLine();this._next();if(this._peek()===FormatterWorker.JavaScriptTokens.IF){this._builder.addSpace();this._parseStatement();}else
  686. this._parseStatementOrBlock();}},_parseContinueStatement:function()
  687. {this._expect(FormatterWorker.JavaScriptTokens.CONTINUE);var token=this._peek();if(!this._hasLineTerminatorBeforeNext()&&token!==FormatterWorker.JavaScriptTokens.SEMICOLON&&token!==FormatterWorker.JavaScriptTokens.RBRACE&&token!==FormatterWorker.JavaScriptTokens.EOS){this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);}
  688. this._expectSemicolon();},_parseBreakStatement:function()
  689. {this._expect(FormatterWorker.JavaScriptTokens.BREAK);var token=this._peek();if(!this._hasLineTerminatorBeforeNext()&&token!==FormatterWorker.JavaScriptTokens.SEMICOLON&&token!==FormatterWorker.JavaScriptTokens.RBRACE&&token!==FormatterWorker.JavaScriptTokens.EOS){this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);}
  690. this._expectSemicolon();},_parseReturnStatement:function()
  691. {this._expect(FormatterWorker.JavaScriptTokens.RETURN);var token=this._peek();if(!this._hasLineTerminatorBeforeNext()&&token!==FormatterWorker.JavaScriptTokens.SEMICOLON&&token!==FormatterWorker.JavaScriptTokens.RBRACE&&token!==FormatterWorker.JavaScriptTokens.EOS){this._builder.addSpace();this._parseExpression();}
  692. this._expectSemicolon();},_parseWithStatement:function()
  693. {this._expect(FormatterWorker.JavaScriptTokens.WITH);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LPAREN);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RPAREN);this._parseStatementOrBlock();},_parseCaseClause:function()
  694. {if(this._peek()===FormatterWorker.JavaScriptTokens.CASE){this._expect(FormatterWorker.JavaScriptTokens.CASE);this._builder.addSpace();this._parseExpression();}else
  695. this._expect(FormatterWorker.JavaScriptTokens.DEFAULT);this._expect(FormatterWorker.JavaScriptTokens.COLON);this._builder.addNewLine();this._builder.increaseNestingLevel();while(this._peek()!==FormatterWorker.JavaScriptTokens.CASE&&this._peek()!==FormatterWorker.JavaScriptTokens.DEFAULT&&this._peek()!==FormatterWorker.JavaScriptTokens.RBRACE){this._parseStatement();this._builder.addNewLine();}
  696. this._builder.decreaseNestingLevel();},_parseSwitchStatement:function()
  697. {this._expect(FormatterWorker.JavaScriptTokens.SWITCH);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LPAREN);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RPAREN);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LBRACE);this._builder.addNewLine();this._builder.increaseNestingLevel();while(this._peek()!==FormatterWorker.JavaScriptTokens.RBRACE)
  698. this._parseCaseClause();this._builder.decreaseNestingLevel();this._expect(FormatterWorker.JavaScriptTokens.RBRACE);},_parseThrowStatement:function()
  699. {this._expect(FormatterWorker.JavaScriptTokens.THROW);this._builder.addSpace();this._parseExpression();this._expectSemicolon();},_parseTryStatement:function()
  700. {this._expect(FormatterWorker.JavaScriptTokens.TRY);this._builder.addSpace();this._parseBlock();var token=this._peek();if(token===FormatterWorker.JavaScriptTokens.CATCH){this._builder.addSpace();this._consume(FormatterWorker.JavaScriptTokens.CATCH);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LPAREN);this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);this._expect(FormatterWorker.JavaScriptTokens.RPAREN);this._builder.addSpace();this._parseBlock();token=this._peek();}
  701. if(token===FormatterWorker.JavaScriptTokens.FINALLY){this._consume(FormatterWorker.JavaScriptTokens.FINALLY);this._builder.addSpace();this._parseBlock();}},_parseDoWhileStatement:function()
  702. {this._expect(FormatterWorker.JavaScriptTokens.DO);var isBlock=this._parseStatementOrBlock();if(isBlock)
  703. this._builder.addSpace();else
  704. this._builder.addNewLine();this._expect(FormatterWorker.JavaScriptTokens.WHILE);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LPAREN);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RPAREN);this._expectSemicolon();},_parseWhileStatement:function()
  705. {this._expect(FormatterWorker.JavaScriptTokens.WHILE);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LPAREN);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RPAREN);this._parseStatementOrBlock();},_parseForStatement:function()
  706. {this._expect(FormatterWorker.JavaScriptTokens.FOR);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LPAREN);if(this._peek()!==FormatterWorker.JavaScriptTokens.SEMICOLON){if(this._peek()===FormatterWorker.JavaScriptTokens.VAR||this._peek()===FormatterWorker.JavaScriptTokens.CONST){this._parseVariableDeclarations();if(this._peek()===FormatterWorker.JavaScriptTokens.IN||(this._peek()===FormatterWorker.JavaScriptTokens.IDENTIFIER&&this._nextToken.value==="of")){this._builder.addSpace();this._next();this._builder.addSpace();this._parseExpression();}}else
  707. this._parseExpression();}
  708. if(this._peek()!==FormatterWorker.JavaScriptTokens.RPAREN){this._expect(FormatterWorker.JavaScriptTokens.SEMICOLON);this._builder.addSpace();if(this._peek()!==FormatterWorker.JavaScriptTokens.SEMICOLON)
  709. this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.SEMICOLON);this._builder.addSpace();if(this._peek()!==FormatterWorker.JavaScriptTokens.RPAREN)
  710. this._parseExpression();}
  711. this._expect(FormatterWorker.JavaScriptTokens.RPAREN);this._parseStatementOrBlock();},_parseExpression:function()
  712. {this._parseAssignmentExpression();while(this._peek()===FormatterWorker.JavaScriptTokens.COMMA){this._expect(FormatterWorker.JavaScriptTokens.COMMA);this._builder.addSpace();this._parseAssignmentExpression();}},_parseAssignmentExpression:function()
  713. {this._parseConditionalExpression();var token=this._peek();if(FormatterWorker.JavaScriptTokens.ASSIGN<=token&&token<=FormatterWorker.JavaScriptTokens.ASSIGN_MOD){this._builder.addSpace();this._next();this._builder.addSpace();this._parseAssignmentExpression();}},_parseConditionalExpression:function()
  714. {this._parseBinaryExpression();if(this._peek()===FormatterWorker.JavaScriptTokens.CONDITIONAL){this._builder.addSpace();this._consume(FormatterWorker.JavaScriptTokens.CONDITIONAL);this._builder.addSpace();this._parseAssignmentExpression();this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.COLON);this._builder.addSpace();this._parseAssignmentExpression();}},_parseBinaryExpression:function()
  715. {this._parseUnaryExpression();var token=this._peek();while(FormatterWorker.JavaScriptTokens.OR<=token&&token<=FormatterWorker.JavaScriptTokens.IN){this._builder.addSpace();this._next();this._builder.addSpace();this._parseBinaryExpression();token=this._peek();}},_parseUnaryExpression:function()
  716. {var token=this._peek();if((FormatterWorker.JavaScriptTokens.NOT<=token&&token<=FormatterWorker.JavaScriptTokens.VOID)||token===FormatterWorker.JavaScriptTokens.ADD||token===FormatterWorker.JavaScriptTokens.SUB||token===FormatterWorker.JavaScriptTokens.INC||token===FormatterWorker.JavaScriptTokens.DEC){this._next();if(token===FormatterWorker.JavaScriptTokens.DELETE||token===FormatterWorker.JavaScriptTokens.TYPEOF||token===FormatterWorker.JavaScriptTokens.VOID)
  717. this._builder.addSpace();this._parseUnaryExpression();}else
  718. return this._parsePostfixExpression();},_parsePostfixExpression:function()
  719. {this._parseLeftHandSideExpression();var token=this._peek();if(!this._hasLineTerminatorBeforeNext()&&(token===FormatterWorker.JavaScriptTokens.INC||token===FormatterWorker.JavaScriptTokens.DEC))
  720. this._next();},_parseLeftHandSideExpression:function()
  721. {if(this._peek()===FormatterWorker.JavaScriptTokens.NEW)
  722. this._parseNewExpression();else
  723. this._parseMemberExpression();while(true){switch(this._peek()){case FormatterWorker.JavaScriptTokens.LBRACK:this._consume(FormatterWorker.JavaScriptTokens.LBRACK);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RBRACK);break;case FormatterWorker.JavaScriptTokens.LPAREN:this._parseArguments();break;case FormatterWorker.JavaScriptTokens.PERIOD:this._consume(FormatterWorker.JavaScriptTokens.PERIOD);this._expectGeneralIdentifier();break;default:return;}}},_parseNewExpression:function()
  724. {this._expect(FormatterWorker.JavaScriptTokens.NEW);this._builder.addSpace();if(this._peek()===FormatterWorker.JavaScriptTokens.NEW)
  725. this._parseNewExpression();else
  726. this._parseMemberExpression();},_parseMemberExpression:function()
  727. {if(this._peek()===FormatterWorker.JavaScriptTokens.FUNCTION){this._expect(FormatterWorker.JavaScriptTokens.FUNCTION);if(this._peek()===FormatterWorker.JavaScriptTokens.IDENTIFIER){this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);}
  728. this._parseFunctionLiteral();}else
  729. this._parsePrimaryExpression();while(true){switch(this._peek()){case FormatterWorker.JavaScriptTokens.LBRACK:this._consume(FormatterWorker.JavaScriptTokens.LBRACK);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RBRACK);break;case FormatterWorker.JavaScriptTokens.PERIOD:this._consume(FormatterWorker.JavaScriptTokens.PERIOD);this._expectGeneralIdentifier();break;case FormatterWorker.JavaScriptTokens.LPAREN:this._parseArguments();break;default:return;}}},_parseDebuggerStatement:function()
  730. {this._expect(FormatterWorker.JavaScriptTokens.DEBUGGER);this._expectSemicolon();},_parsePrimaryExpression:function()
  731. {switch(this._peek()){case FormatterWorker.JavaScriptTokens.THIS:return this._consume(FormatterWorker.JavaScriptTokens.THIS);case FormatterWorker.JavaScriptTokens.NULL_LITERAL:return this._consume(FormatterWorker.JavaScriptTokens.NULL_LITERAL);case FormatterWorker.JavaScriptTokens.TRUE_LITERAL:return this._consume(FormatterWorker.JavaScriptTokens.TRUE_LITERAL);case FormatterWorker.JavaScriptTokens.FALSE_LITERAL:return this._consume(FormatterWorker.JavaScriptTokens.FALSE_LITERAL);case FormatterWorker.JavaScriptTokens.IDENTIFIER:return this._consume(FormatterWorker.JavaScriptTokens.IDENTIFIER);case FormatterWorker.JavaScriptTokens.NUMBER:return this._consume(FormatterWorker.JavaScriptTokens.NUMBER);case FormatterWorker.JavaScriptTokens.STRING:return this._consume(FormatterWorker.JavaScriptTokens.STRING);case FormatterWorker.JavaScriptTokens.ASSIGN_DIV:return this._parseRegExpLiteral();case FormatterWorker.JavaScriptTokens.DIV:return this._parseRegExpLiteral();case FormatterWorker.JavaScriptTokens.LBRACK:return this._parseArrayLiteral();case FormatterWorker.JavaScriptTokens.LBRACE:return this._parseObjectLiteral();case FormatterWorker.JavaScriptTokens.LPAREN:this._consume(FormatterWorker.JavaScriptTokens.LPAREN);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RPAREN);return;default:return this._next();}},_parseArrayLiteral:function()
  732. {this._expect(FormatterWorker.JavaScriptTokens.LBRACK);this._builder.increaseNestingLevel();while(this._peek()!==FormatterWorker.JavaScriptTokens.RBRACK){if(this._peek()!==FormatterWorker.JavaScriptTokens.COMMA)
  733. this._parseAssignmentExpression();if(this._peek()!==FormatterWorker.JavaScriptTokens.RBRACK){this._expect(FormatterWorker.JavaScriptTokens.COMMA);this._builder.addSpace();}}
  734. this._builder.decreaseNestingLevel();this._expect(FormatterWorker.JavaScriptTokens.RBRACK);},_parseObjectLiteralGetSet:function()
  735. {var token=this._peek();if(token===FormatterWorker.JavaScriptTokens.IDENTIFIER||token===FormatterWorker.JavaScriptTokens.NUMBER||token===FormatterWorker.JavaScriptTokens.STRING||FormatterWorker.JavaScriptTokens.DELETE<=token&&token<=FormatterWorker.JavaScriptTokens.FALSE_LITERAL||token===FormatterWorker.JavaScriptTokens.INSTANCEOF||token===FormatterWorker.JavaScriptTokens.IN||token===FormatterWorker.JavaScriptTokens.CONST){this._next();this._parseFunctionLiteral();}},_parseObjectLiteral:function()
  736. {this._expect(FormatterWorker.JavaScriptTokens.LBRACE);this._builder.increaseNestingLevel();while(this._peek()!==FormatterWorker.JavaScriptTokens.RBRACE){var token=this._peek();switch(token){case FormatterWorker.JavaScriptTokens.IDENTIFIER:this._consume(FormatterWorker.JavaScriptTokens.IDENTIFIER);var name=this._token.value;if((name==="get"||name==="set")&&this._peek()!==FormatterWorker.JavaScriptTokens.COLON){this._builder.addSpace();this._parseObjectLiteralGetSet();if(this._peek()!==FormatterWorker.JavaScriptTokens.RBRACE){this._expect(FormatterWorker.JavaScriptTokens.COMMA);}
  737. continue;}
  738. break;case FormatterWorker.JavaScriptTokens.STRING:this._consume(FormatterWorker.JavaScriptTokens.STRING);break;case FormatterWorker.JavaScriptTokens.NUMBER:this._consume(FormatterWorker.JavaScriptTokens.NUMBER);break;default:this._next();}
  739. this._expect(FormatterWorker.JavaScriptTokens.COLON);this._builder.addSpace();this._parseAssignmentExpression();if(this._peek()!==FormatterWorker.JavaScriptTokens.RBRACE){this._expect(FormatterWorker.JavaScriptTokens.COMMA);}}
  740. this._builder.decreaseNestingLevel();this._expect(FormatterWorker.JavaScriptTokens.RBRACE);},_parseRegExpLiteral:function()
  741. {if(this._nextToken.type==="regexp")
  742. this._next();else{this._forceRegexp=true;this._next();}},_parseArguments:function()
  743. {this._expect(FormatterWorker.JavaScriptTokens.LPAREN);var done=(this._peek()===FormatterWorker.JavaScriptTokens.RPAREN);while(!done){this._parseAssignmentExpression();done=(this._peek()===FormatterWorker.JavaScriptTokens.RPAREN);if(!done){this._expect(FormatterWorker.JavaScriptTokens.COMMA);this._builder.addSpace();}}
  744. this._expect(FormatterWorker.JavaScriptTokens.RPAREN);},_parseFunctionLiteral:function()
  745. {this._expect(FormatterWorker.JavaScriptTokens.LPAREN);var done=(this._peek()===FormatterWorker.JavaScriptTokens.RPAREN);while(!done){this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);done=(this._peek()===FormatterWorker.JavaScriptTokens.RPAREN);if(!done){this._expect(FormatterWorker.JavaScriptTokens.COMMA);this._builder.addSpace();}}
  746. this._expect(FormatterWorker.JavaScriptTokens.RPAREN);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LBRACE);this._builder.addNewLine();this._builder.increaseNestingLevel();this._parseSourceElements(FormatterWorker.JavaScriptTokens.RBRACE);this._builder.decreaseNestingLevel();this._expect(FormatterWorker.JavaScriptTokens.RBRACE);}}
  747. FormatterWorker.JavaScriptFormattedContentBuilder=function(content,mapping,originalOffset,formattedOffset,indentString)
  748. {this._originalContent=content;this._originalOffset=originalOffset;this._lastOriginalPosition=0;this._formattedContent=[];this._formattedContentLength=0;this._formattedOffset=formattedOffset;this._lastFormattedPosition=0;this._mapping=mapping;this._lineNumber=0;this._nestingLevel=0;this._indentString=indentString;this._cachedIndents={};}
  749. FormatterWorker.JavaScriptFormattedContentBuilder.prototype={addToken:function(token)
  750. {for(var i=0;i<token.comments_before.length;++i)
  751. this._addComment(token.comments_before[i]);while(this._lineNumber<token.line){this._addText("\n");this._addIndent();this._needNewLine=false;this._lineNumber+=1;}
  752. if(this._needNewLine){this._addText("\n");this._addIndent();this._needNewLine=false;}
  753. this._addMappingIfNeeded(token.pos);this._addText(this._originalContent.substring(token.pos,token.endPos));this._lineNumber=token.endLine;},addSpace:function()
  754. {this._addText(" ");},addNewLine:function()
  755. {this._needNewLine=true;},increaseNestingLevel:function()
  756. {this._nestingLevel+=1;},decreaseNestingLevel:function()
  757. {this._nestingLevel-=1;},content:function()
  758. {return this._formattedContent.join("");},_addIndent:function()
  759. {if(this._cachedIndents[this._nestingLevel]){this._addText(this._cachedIndents[this._nestingLevel]);return;}
  760. var fullIndent="";for(var i=0;i<this._nestingLevel;++i)
  761. fullIndent+=this._indentString;this._addText(fullIndent);if(this._nestingLevel<=20)
  762. this._cachedIndents[this._nestingLevel]=fullIndent;},_addComment:function(comment)
  763. {if(this._lineNumber<comment.line){for(var j=this._lineNumber;j<comment.line;++j)
  764. this._addText("\n");this._lineNumber=comment.line;this._needNewLine=false;this._addIndent();}else
  765. this.addSpace();this._addMappingIfNeeded(comment.pos);if(comment.type==="comment1")
  766. this._addText("//");else
  767. this._addText("/*");this._addText(comment.value);if(comment.type!=="comment1"){this._addText("*/");var position=-1;while((position=comment.value.indexOf("\n",position+1))!==-1)
  768. this._lineNumber+=1;}},_addText:function(text)
  769. {this._formattedContent.push(text);this._formattedContentLength+=text.length;},_addMappingIfNeeded:function(originalPosition)
  770. {if(originalPosition-this._lastOriginalPosition===this._formattedContentLength-this._lastFormattedPosition)
  771. return;this._mapping.original.push(this._originalOffset+originalPosition);this._lastOriginalPosition=originalPosition;this._mapping.formatted.push(this._formattedOffset+this._formattedContentLength);this._lastFormattedPosition=this._formattedContentLength;}}
  772. FormatterWorker.JavaScriptTokens={};FormatterWorker.JavaScriptTokensByValue={};FormatterWorker.JavaScriptTokens.EOS=0;FormatterWorker.JavaScriptTokens.LPAREN=FormatterWorker.JavaScriptTokensByValue["("]=1;FormatterWorker.JavaScriptTokens.RPAREN=FormatterWorker.JavaScriptTokensByValue[")"]=2;FormatterWorker.JavaScriptTokens.LBRACK=FormatterWorker.JavaScriptTokensByValue["["]=3;FormatterWorker.JavaScriptTokens.RBRACK=FormatterWorker.JavaScriptTokensByValue["]"]=4;FormatterWorker.JavaScriptTokens.LBRACE=FormatterWorker.JavaScriptTokensByValue["{"]=5;FormatterWorker.JavaScriptTokens.RBRACE=FormatterWorker.JavaScriptTokensByValue["}"]=6;FormatterWorker.JavaScriptTokens.COLON=FormatterWorker.JavaScriptTokensByValue[":"]=7;FormatterWorker.JavaScriptTokens.SEMICOLON=FormatterWorker.JavaScriptTokensByValue[";"]=8;FormatterWorker.JavaScriptTokens.PERIOD=FormatterWorker.JavaScriptTokensByValue["."]=9;FormatterWorker.JavaScriptTokens.CONDITIONAL=FormatterWorker.JavaScriptTokensByValue["?"]=10;FormatterWorker.JavaScriptTokens.INC=FormatterWorker.JavaScriptTokensByValue["++"]=11;FormatterWorker.JavaScriptTokens.DEC=FormatterWorker.JavaScriptTokensByValue["--"]=12;FormatterWorker.JavaScriptTokens.ASSIGN=FormatterWorker.JavaScriptTokensByValue["="]=13;FormatterWorker.JavaScriptTokens.ASSIGN_BIT_OR=FormatterWorker.JavaScriptTokensByValue["|="]=14;FormatterWorker.JavaScriptTokens.ASSIGN_BIT_XOR=FormatterWorker.JavaScriptTokensByValue["^="]=15;FormatterWorker.JavaScriptTokens.ASSIGN_BIT_AND=FormatterWorker.JavaScriptTokensByValue["&="]=16;FormatterWorker.JavaScriptTokens.ASSIGN_SHL=FormatterWorker.JavaScriptTokensByValue["<<="]=17;FormatterWorker.JavaScriptTokens.ASSIGN_SAR=FormatterWorker.JavaScriptTokensByValue[">>="]=18;FormatterWorker.JavaScriptTokens.ASSIGN_SHR=FormatterWorker.JavaScriptTokensByValue[">>>="]=19;FormatterWorker.JavaScriptTokens.ASSIGN_ADD=FormatterWorker.JavaScriptTokensByValue["+="]=20;FormatterWorker.JavaScriptTokens.ASSIGN_SUB=FormatterWorker.JavaScriptTokensByValue["-="]=21;FormatterWorker.JavaScriptTokens.ASSIGN_MUL=FormatterWorker.JavaScriptTokensByValue["*="]=22;FormatterWorker.JavaScriptTokens.ASSIGN_DIV=FormatterWorker.JavaScriptTokensByValue["/="]=23;FormatterWorker.JavaScriptTokens.ASSIGN_MOD=FormatterWorker.JavaScriptTokensByValue["%="]=24;FormatterWorker.JavaScriptTokens.COMMA=FormatterWorker.JavaScriptTokensByValue[","]=25;FormatterWorker.JavaScriptTokens.OR=FormatterWorker.JavaScriptTokensByValue["||"]=26;FormatterWorker.JavaScriptTokens.AND=FormatterWorker.JavaScriptTokensByValue["&&"]=27;FormatterWorker.JavaScriptTokens.BIT_OR=FormatterWorker.JavaScriptTokensByValue["|"]=28;FormatterWorker.JavaScriptTokens.BIT_XOR=FormatterWorker.JavaScriptTokensByValue["^"]=29;FormatterWorker.JavaScriptTokens.BIT_AND=FormatterWorker.JavaScriptTokensByValue["&"]=30;FormatterWorker.JavaScriptTokens.SHL=FormatterWorker.JavaScriptTokensByValue["<<"]=31;FormatterWorker.JavaScriptTokens.SAR=FormatterWorker.JavaScriptTokensByValue[">>"]=32;FormatterWorker.JavaScriptTokens.SHR=FormatterWorker.JavaScriptTokensByValue[">>>"]=33;FormatterWorker.JavaScriptTokens.ADD=FormatterWorker.JavaScriptTokensByValue["+"]=34;FormatterWorker.JavaScriptTokens.SUB=FormatterWorker.JavaScriptTokensByValue["-"]=35;FormatterWorker.JavaScriptTokens.MUL=FormatterWorker.JavaScriptTokensByValue["*"]=36;FormatterWorker.JavaScriptTokens.DIV=FormatterWorker.JavaScriptTokensByValue["/"]=37;FormatterWorker.JavaScriptTokens.MOD=FormatterWorker.JavaScriptTokensByValue["%"]=38;FormatterWorker.JavaScriptTokens.EQ=FormatterWorker.JavaScriptTokensByValue["=="]=39;FormatterWorker.JavaScriptTokens.NE=FormatterWorker.JavaScriptTokensByValue["!="]=40;FormatterWorker.JavaScriptTokens.EQ_STRICT=FormatterWorker.JavaScriptTokensByValue["==="]=41;FormatterWorker.JavaScriptTokens.NE_STRICT=FormatterWorker.JavaScriptTokensByValue["!=="]=42;FormatterWorker.JavaScriptTokens.LT=FormatterWorker.JavaScriptTokensByValue["<"]=43;FormatterWorker.JavaScriptTokens.GT=FormatterWorker.JavaScriptTokensByValue[">"]=44;FormatterWorker.JavaScriptTokens.LTE=FormatterWorker.JavaScriptTokensByValue["<="]=45;FormatterWorker.JavaScriptTokens.GTE=FormatterWorker.JavaScriptTokensByValue[">="]=46;FormatterWorker.JavaScriptTokens.INSTANCEOF=FormatterWorker.JavaScriptTokensByValue["instanceof"]=47;FormatterWorker.JavaScriptTokens.IN=FormatterWorker.JavaScriptTokensByValue["in"]=48;FormatterWorker.JavaScriptTokens.NOT=FormatterWorker.JavaScriptTokensByValue["!"]=49;FormatterWorker.JavaScriptTokens.BIT_NOT=FormatterWorker.JavaScriptTokensByValue["~"]=50;FormatterWorker.JavaScriptTokens.DELETE=FormatterWorker.JavaScriptTokensByValue["delete"]=51;FormatterWorker.JavaScriptTokens.TYPEOF=FormatterWorker.JavaScriptTokensByValue["typeof"]=52;FormatterWorker.JavaScriptTokens.VOID=FormatterWorker.JavaScriptTokensByValue["void"]=53;FormatterWorker.JavaScriptTokens.BREAK=FormatterWorker.JavaScriptTokensByValue["break"]=54;FormatterWorker.JavaScriptTokens.CASE=FormatterWorker.JavaScriptTokensByValue["case"]=55;FormatterWorker.JavaScriptTokens.CATCH=FormatterWorker.JavaScriptTokensByValue["catch"]=56;FormatterWorker.JavaScriptTokens.CONTINUE=FormatterWorker.JavaScriptTokensByValue["continue"]=57;FormatterWorker.JavaScriptTokens.DEBUGGER=FormatterWorker.JavaScriptTokensByValue["debugger"]=58;FormatterWorker.JavaScriptTokens.DEFAULT=FormatterWorker.JavaScriptTokensByValue["default"]=59;FormatterWorker.JavaScriptTokens.DO=FormatterWorker.JavaScriptTokensByValue["do"]=60;FormatterWorker.JavaScriptTokens.ELSE=FormatterWorker.JavaScriptTokensByValue["else"]=61;FormatterWorker.JavaScriptTokens.FINALLY=FormatterWorker.JavaScriptTokensByValue["finally"]=62;FormatterWorker.JavaScriptTokens.FOR=FormatterWorker.JavaScriptTokensByValue["for"]=63;FormatterWorker.JavaScriptTokens.FUNCTION=FormatterWorker.JavaScriptTokensByValue["function"]=64;FormatterWorker.JavaScriptTokens.IF=FormatterWorker.JavaScriptTokensByValue["if"]=65;FormatterWorker.JavaScriptTokens.NEW=FormatterWorker.JavaScriptTokensByValue["new"]=66;FormatterWorker.JavaScriptTokens.RETURN=FormatterWorker.JavaScriptTokensByValue["return"]=67;FormatterWorker.JavaScriptTokens.SWITCH=FormatterWorker.JavaScriptTokensByValue["switch"]=68;FormatterWorker.JavaScriptTokens.THIS=FormatterWorker.JavaScriptTokensByValue["this"]=69;FormatterWorker.JavaScriptTokens.THROW=FormatterWorker.JavaScriptTokensByValue["throw"]=70;FormatterWorker.JavaScriptTokens.TRY=FormatterWorker.JavaScriptTokensByValue["try"]=71;FormatterWorker.JavaScriptTokens.VAR=FormatterWorker.JavaScriptTokensByValue["var"]=72;FormatterWorker.JavaScriptTokens.WHILE=FormatterWorker.JavaScriptTokensByValue["while"]=73;FormatterWorker.JavaScriptTokens.WITH=FormatterWorker.JavaScriptTokensByValue["with"]=74;FormatterWorker.JavaScriptTokens.NULL_LITERAL=FormatterWorker.JavaScriptTokensByValue["null"]=75;FormatterWorker.JavaScriptTokens.TRUE_LITERAL=FormatterWorker.JavaScriptTokensByValue["true"]=76;FormatterWorker.JavaScriptTokens.FALSE_LITERAL=FormatterWorker.JavaScriptTokensByValue["false"]=77;FormatterWorker.JavaScriptTokens.NUMBER=78;FormatterWorker.JavaScriptTokens.STRING=79;FormatterWorker.JavaScriptTokens.IDENTIFIER=80;FormatterWorker.JavaScriptTokens.CONST=FormatterWorker.JavaScriptTokensByValue["const"]=81;FormatterWorker.JavaScriptTokensByType={"eof":FormatterWorker.JavaScriptTokens.EOS,"name":FormatterWorker.JavaScriptTokens.IDENTIFIER,"num":FormatterWorker.JavaScriptTokens.NUMBER,"regexp":FormatterWorker.JavaScriptTokens.DIV,"string":FormatterWorker.JavaScriptTokens.STRING};FormatterWorker.JavaScriptTokenizer=function(content)
  773. {this._readNextToken=tokenizerHolder.tokenizer(content);this._state=this._readNextToken.context();}
  774. FormatterWorker.JavaScriptTokenizer.prototype={content:function()
  775. {return this._state.text;},next:function(forceRegexp)
  776. {var uglifyToken=this._readNextToken(forceRegexp);uglifyToken.endPos=this._state.pos;uglifyToken.endLine=this._state.line;uglifyToken.token=this._convertUglifyToken(uglifyToken);return uglifyToken;},_convertUglifyToken:function(uglifyToken)
  777. {var token=FormatterWorker.JavaScriptTokensByType[uglifyToken.type];if(typeof token==="number")
  778. return token;token=FormatterWorker.JavaScriptTokensByValue[uglifyToken.value];if(typeof token==="number")
  779. return token;throw"Unknown token type "+uglifyToken.type;}};FormatterWorker.CSSFormatter=function(content,builder)
  780. {this._content=content;this._builder=builder;this._lastLine=-1;this._state={};}
  781. FormatterWorker.CSSFormatter.prototype={format:function()
  782. {this._lineEndings=this._lineEndings(this._content);var tokenize=FormatterWorker.createTokenizer("text/css");var lines=this._content.split("\n");for(var i=0;i<lines.length;++i){var line=lines[i];tokenize(line,this._tokenCallback.bind(this,i));}
  783. this._builder.flushNewLines(true);},_lineEndings:function(text)
  784. {var lineEndings=[];var i=text.indexOf("\n");while(i!==-1){lineEndings.push(i);i=text.indexOf("\n",i+1);}
  785. lineEndings.push(text.length);return lineEndings;},_tokenCallback:function(startLine,token,type,startColumn)
  786. {if(startLine!==this._lastLine)
  787. this._state.eatWhitespace=true;if(/^property/.test(type)&&!this._state.inPropertyValue)
  788. this._state.seenProperty=true;this._lastLine=startLine;var isWhitespace=/^\s+$/.test(token);if(isWhitespace){if(!this._state.eatWhitespace)
  789. this._builder.addSpace();return;}
  790. this._state.eatWhitespace=false;if(token==="\n")
  791. return;if(token!=="}"){if(this._state.afterClosingBrace)
  792. this._builder.addNewLine();this._state.afterClosingBrace=false;}
  793. var startPosition=(startLine?this._lineEndings[startLine-1]:0)+startColumn;if(token==="}"){if(this._state.inPropertyValue)
  794. this._builder.addNewLine();this._builder.decreaseNestingLevel();this._state.afterClosingBrace=true;this._state.inPropertyValue=false;}else if(token===":"&&!this._state.inPropertyValue&&this._state.seenProperty){this._builder.addToken(token,startPosition,startLine,startColumn);this._builder.addSpace();this._state.eatWhitespace=true;this._state.inPropertyValue=true;this._state.seenProperty=false;return;}else if(token==="{"){this._builder.addSpace();this._builder.addToken(token,startPosition,startLine,startColumn);this._builder.addNewLine();this._builder.increaseNestingLevel();return;}
  795. this._builder.addToken(token,startPosition,startLine,startColumn);if(type==="comment"&&!this._state.inPropertyValue&&!this._state.seenProperty)
  796. this._builder.addNewLine();if(token===";"&&this._state.inPropertyValue){this._state.inPropertyValue=false;this._builder.addNewLine();}else if(token==="}"){this._builder.addNewLine();}}}
  797. FormatterWorker.CSSFormattedContentBuilder=function(content,mapping,originalOffset,formattedOffset,indentString)
  798. {this._originalContent=content;this._originalOffset=originalOffset;this._lastOriginalPosition=0;this._formattedContent=[];this._formattedContentLength=0;this._formattedOffset=formattedOffset;this._lastFormattedPosition=0;this._mapping=mapping;this._lineNumber=0;this._nestingLevel=0;this._needNewLines=0;this._atLineStart=true;this._indentString=indentString;this._cachedIndents={};}
  799. FormatterWorker.CSSFormattedContentBuilder.prototype={addToken:function(token,startPosition,startLine,startColumn)
  800. {if((this._isWhitespaceRun||this._atLineStart)&&/^\s+$/.test(token))
  801. return;if(this._isWhitespaceRun&&this._lineNumber===startLine&&!this._needNewLines)
  802. this._addText(" ");this._isWhitespaceRun=false;this._atLineStart=false;while(this._lineNumber<startLine){this._addText("\n");this._addIndent();this._needNewLines=0;this._lineNumber+=1;this._atLineStart=true;}
  803. if(this._needNewLines){this.flushNewLines();this._addIndent();this._atLineStart=true;}
  804. this._addMappingIfNeeded(startPosition);this._addText(token);this._lineNumber=startLine;},addSpace:function()
  805. {if(this._isWhitespaceRun)
  806. return;this._isWhitespaceRun=true;},addNewLine:function()
  807. {++this._needNewLines;},flushNewLines:function(atLeastOne)
  808. {var newLineCount=atLeastOne&&!this._needNewLines?1:this._needNewLines;if(newLineCount)
  809. this._isWhitespaceRun=false;for(var i=0;i<newLineCount;++i)
  810. this._addText("\n");this._needNewLines=0;},increaseNestingLevel:function()
  811. {this._nestingLevel+=1;},decreaseNestingLevel:function(addNewline)
  812. {if(this._nestingLevel)
  813. this._nestingLevel-=1;if(addNewline)
  814. this.addNewLine();},content:function()
  815. {return this._formattedContent.join("");},_addIndent:function()
  816. {if(this._cachedIndents[this._nestingLevel]){this._addText(this._cachedIndents[this._nestingLevel]);return;}
  817. var fullIndent="";for(var i=0;i<this._nestingLevel;++i)
  818. fullIndent+=this._indentString;this._addText(fullIndent);if(this._nestingLevel<=20)
  819. this._cachedIndents[this._nestingLevel]=fullIndent;},_addText:function(text)
  820. {if(!text)
  821. return;this._formattedContent.push(text);this._formattedContentLength+=text.length;},_addMappingIfNeeded:function(originalPosition)
  822. {if(originalPosition-this._lastOriginalPosition===this._formattedContentLength-this._lastFormattedPosition)
  823. return;this._mapping.original.push(this._originalOffset+originalPosition);this._lastOriginalPosition=originalPosition;this._mapping.formatted.push(this._formattedOffset+this._formattedContentLength);this._lastFormattedPosition=this._formattedContentLength;}};